SpringCloud组件Nacos注册中心
前言:Nacos 是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台。它是微服务架构中重要的组件,提供了服务发现与注册、配置管理和动态 DNS 服务。Nacos 支持多种服务生态系统,包括 Kubernetes 和 Spring Cloud。
主要特性
服务发现与服务健康监测:支持服务实例的注册与发现,提供健康检查机制,确保服务的高可用性。
动态配置管理:支持集中化管理应用的配置,提供实时的配置推送和动态更新功能。
动态 DNS 服务:支持 DNS 协议和 RESTful API 的服务发现,实现负载均衡和路由。
多语言支持:提供跨多语言(Java、Go、C++、Node.js 等)的 SDK,方便多语言开发者使用。
主要组件
Nacos Server:提供服务注册、服务发现、配置管理和服务管理功能。
Nacos Client:用于服务注册和发现,配置获取和监听等。
Nacos 注册中心官方地址:https://nacos.io/
数据库创建nacos考虑到持久化的需要,一般选择基于数据库存储,创建nacos数据库,将sql脚本导入nacos数据库
docker启动nac ...
Nginx解决跨域问题
前言:Nginx使用Nginx解决跨域问题时,通常我们需要配置响应头中的 Access-Control-Allow-Origin 等 CORS(跨域资源共享)相关的头信息。
Nginx 配置示例假设你的站点配置文件是 /etc/nginx/sites-available/your_site:
12345678910111213141516171819202122232425server { listen 80; server_name your_site.com; location / { # 如果你有反向代理到后端服务器,可以放在这里 proxy_pass http://backend_server; # 设置CORS响应头 add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Meth ...
Nginx配置Gzip压缩
前言:Nginx中配置Gzip压缩可以显著减少传输的数据量,提高网站的加载速度。
基本的 Nginx Gzip 配置将以下配置添加到你的Nginx配置文件中,通常是 /etc/nginx/nginx.conf 或者你具体站点的配置文件中:
1234567891011121314151617181920212223http { gzip on; gzip_disable "msie6"; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_min_length 256; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; # 其他配置... ...
面试 - java开发
基础相关java有哪些基础类型8个 int long byte float boolean double char short
面向对象是什么封装:将数据(属性)和操作数据的方法(行为)封装在一起,限制直接访问类的内部数据,只能通过公开的方法进行操作。
继承:子类可以继承父类的属性和方法,重用已有的代码并扩展新功能。
多态:相同的接口可以有不同的实现,可以用同一接口调用不同的对象,执行不同的操作。
重载和重写的区别是什么重载:
发生在同一个类中。
方法名相同,但参数列表不同(参数的个数、类型或顺序不同)。
返回值类型可以相同也可以不同。
重载是在编译时根据参数的类型和个数来决定调用哪个方法。
123456789public class OverloadingExample { public void method(int num) { System.out.println("Integer parameter: " + num); } public void method(String st ...
Java设计模式从入门到放弃
前言: Java 中,常见的设计模式包含 23 种,这些设计模式分为三种类型:创建型模式、结构型模式和行为型模式。每种设计模式都解决了特定类型的问题,并具有各自的优缺点和适用场景。
创建型模式(5种)
单例模式(Singleton Pattern):确保类只有一个实例,并提供全局访问点。
工厂模式(Factory Pattern):定义一个用于创建对象的接口,让子类决定实例化哪个类。
抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。
建造者模式(Builder Pattern):将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。
原型模式(Prototype Pattern):通过复制现有对象来创建新对象,而不是通过实例化类。
结构型模式(7种)
适配器模式(Adapter Pattern):将一个类的接口转换成客户端所期待的另一个接口,使得原本不兼容的接口能够一起工作。
桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们可以独立变化。
组合模式 ...
JavaSpirngBoot项目实现HTTPS访问
前言:有时,需要对单个项目配置HTTPS,但不推荐这种做法,可以在nginx,对项目统一进行配置,证书替换,只需修改一处,现在需要每个项目都配置,证书过期,需每个都进行替换
SSL证书在证书管理平台,SSL 证书申请免费证书,申请完成后,选择对应的域名
选择Tomcat点击下载
下载的证书解压后有两个文件,一个后缀为pfx,另一个后缀为txt
项目修改把pfx文件放在resources目录下,修改yml文件中的server,添加如下配置
修改yml12345server: ssl: # 配置接口为https,部署后方可生效,本地不会显示 key-store: classpath:域名.com.pfx # pfx文件存放路径 key-store-password: 12345678 # txt密码 key-store-type: PKCS12 # tomcat服务器类型默认
pfx文件位置
查看结果项目启动后,通过域名加端口,正常访问
Jenkins从入门到放弃
前言:Jenkins是一个开源的自动化服务器,它可以用于自动执行各种任务,如构建、测试和部署软件。通过使用Jenkins,软件开发团队可以自动化和优化其工作流程,提高效率和质量。Jenkins提供了丰富的插件生态系统,支持各种不同的集成和扩展,使其成为了许多团队的首选工具之一。
前置准备后端项目添加Dockerfile后端项目中在src同级目录创建Dockerfile文件,添加如下内容,按项目进行修改
123456789101112131415161718# 基础镜像FROM openjdk:11-jre-slim# 作者MAINTAINER changwang# 配置ENV PARAMS=""# 时区ENV TZ=PRCRUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone# 添加应用ADD target/listen-0.0.1-SNAPSHOT.jar /listen-0.0.1-SNAPSHOT.jar## 在镜像运行为容器后执行的命令 ...
RabbitMQ从入门到放弃
前言:RabbitMQ 是一个流行的开源消息队列软件,实现了高级消息队列协议(AMQP)的标准。主要用于在分布式系统中传递消息,可以在应用程序之间可靠地进行通信。
RabbitMQ 的核心概念包括:
生产者(Producer):生产者是向 RabbitMQ 发送消息的应用程序。
队列(Queue):队列是用于存储消息的缓冲区。生产者将消息发送到队列,消费者从队列中接收消息。
消费者(Consumer):消费者是从 RabbitMQ 接收消息的应用程序。
交换机(Exchange):交换机是用于将消息路由到一个或多个队列的组件。生产者将消息发送到交换机,交换机根据预定义的规则(称为路由键)将消息路由到一个或多个队列。
绑定(Binding):绑定是交换机和队列之间的关联,它定义了交换机如何将消息路由到队列。
安装使用docker来安装RabbitMQ,使用的版本是3.8
软件包上传服务器这块把软件包拖到home目录,后切换到安装包存放的目录
1cd /home
加载镜像文件1docker load -i mq.tar
启动RabbitMQ1docker run ...
Elasticsearch从入门到放弃
前言:Elasticsearch 是一个开源的分布式搜索和分析引擎,主要用于处理大规模的文本数据和各种类型的结构化数据。基于 Apache Lucene 构建,提供了强大的全文搜索、实时分析和多租户能力。
Elasticsearch 的关键特性和用途:
全文搜索:Elasticsearch 提供了高效的全文搜索功能,支持复杂的查询和排序,可以快速地搜索大规模的文本数据。
实时数据分析:Elasticsearch 支持实时索引和查询,可以对数据进行实时的分析和可视化,帮助用户发现数据中的模式和关联。
分布式架构:Elasticsearch 是一个分布式系统,可以水平扩展到数百台服务器,处理大规模的数据存储和检索需求。它具有自动化的数据分片和副本机制,保证数据的高可用性和可靠性。
多种数据类型支持:Elasticsearch 支持多种数据类型,包括文本、数值、地理位置、日期等,可以灵活地处理各种类型的数据。
RESTful API:Elasticsearch 提供了基于 RESTful 的 API,可以通过简单的 HTTP 请求进行索引、查询、删除等操作,与各种编程语 ...
Java项目使用ip2region按IP查询地址
前言:ip2region 是一个离线IP地址定位库和IP定位数据管理框架,10微秒级别的查询效率。
github地址:https://github.com/lionsoul2014/ip2region
下载ip2region.xdb在springboot项目中在resources里面创建文件夹ipdb,把ip2region.xdb放进去
maven引入ip2region
12345<dependency> <groupId>org.lionsoul</groupId> <artifactId>ip2region</artifactId> <version>2.6.5</version></dependency>
工具类使用到的地方会创建基于内存的Searcher对象,没有使用该工具类,不会创建Searcher对象,项目停止的时候,判断是否存在Searcher,如果存在,关闭掉
123456789101112131415161718192021222324252627 ...