首页
关于
友链
Search
1
wlop 4K 壁纸 4k8k 动态 壁纸
713 阅读
2
Docker搭建Typecho博客
566 阅读
3
Nacos持久化MySQL问题-解决方案
430 阅读
4
SpringBoot整合SpringCache
388 阅读
5
keytool证书导入
381 阅读
解决方案
JAVA基础
JVM
多线程
开源框架
数据库
前端
分布式
框架整合
中间件
容器部署
设计模式
数据结构与算法
开发工具
百度网盘资源
天翼网盘资源
阿里网盘资源
登录
Search
标签搜索
java
javase
docker
java8
springboot
thread
spring
分布式
mysql
锁
linux
redis
源码
typecho
centos
git
map
lambda
stream
nginx
少年
累计撰写
183
篇文章
累计收到
10
条评论
首页
栏目
解决方案
JAVA基础
JVM
多线程
开源框架
数据库
前端
分布式
框架整合
中间件
容器部署
设计模式
数据结构与算法
开发工具
百度网盘资源
天翼网盘资源
阿里网盘资源
页面
关于
友链
搜索到
3
篇与
的结果
2022-03-14
SpringBoot整合Sleuth+Zipkin 服务链路追踪
SpringBoot整合Sleuth+Zipkin 服务链路追踪一、整合 Sleu1、服务提供者与消费者导入依赖<!--整合 Sleut:服务提供者与消费者导入依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> <version>3.1.1</version> </dependency>2、打开 debug 日志logging: level: org.springframework.cloud.openfeign: debug org.springframework.cloud.sleuth: debug3、发起一次远程调用,观察控制台DEBUG [user-service,541450f08573fff5,541450f08573fff5,false]user-service:服务名 541450f08573fff5:是 TranceId,一条链路中,只有一个 TranceId 541450f08573fff5:是 spanId,链路中的基本工作单元 id false:表示是否将数据输出到其他服务,true 则会把信息输出到其他可视化的服务上观察二、整合 zipkin 可视化观察1、docker 安装 zipkin 服务器docker run --name zipkin -d -p 9411:9411 openzipkin/zipkin设置随docker启动docker update --restart=always zipkin2、导入依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> <version>2.2.8.RELEASE</version> </dependency>因为spring-cloud-starter-zipkin中引入了spring-cloud-starter-sleuth,因此上面的spring-cloud-starter-sleuth可以不用引入。3、添加 zipkin 相关配置spring: application: name: ifamily-booking zipkin: base-url: http://127.0.0.1:9411/ # zipkin 服务器的地址 # 关闭服务发现,否则 Spring Cloud 会把 zipkin 的 url 当做服务名称 discoveryClientEnabled: false sender: type: web # 设置使用 http 的方式传输数据 sleuth: sampler: probability: 1 # 设置抽样采集率为 100%,默认为 0.1,即 10%4、查看通过http://127.0.0.1:9411即可查看链路追踪信息。三、持久化链路追踪数据到ES启动命令docker run --env STORAGE_TYPE=elasticsearch --env ES_HOSTS=192.168.56.10:9200 openzipkin/zipkin-dependencies注意:这个是openzipkin/zipkin-dependencies,改版后的。
2022年03月14日
214 阅读
0 评论
7 点赞
2022-03-08
微服务设计原则
你设计微服务时遵循什么原则?1.单一职责原则:让每个服务能独立,有界限的工作,每个服务只关注自己的业务。做到高内聚。2.服务自治原则:每个服务要能做到独立开发、独立测试、独立构建、独立部署,独立运行。与其他服务进行解耦。3.轻量级通信原则:让每个服务之间的调用是轻量级,并且能够跨平台、跨语言。比如采用RESTful风格,利用消息队列进行通信等。4.粒度进化原则:对每个服务的粒度把控,其实没有统一的标准,这个得结合我们解决的具体业务问题。不要过度设计。服务的粒度随着业务和用户的发展而发展。I总结一句话,软件是为业务服务的,好的系统不是设计出来的,而是进化出来的。
2022年03月08日
166 阅读
0 评论
1 点赞
2022-03-02
微服务项目搭建
一、创建仓库注意:仓库名称、路径、选择语言、添加.gitignore、添加开源许可证、选择分支模型。二、拉取项目三、创建微服务模块-记账管理微服务选择微服务必要组件创建好第一个记账微服务后,项目结构。然后安装上述步骤,依次创建出其它微服务模块。各微服务共同点:1、都导入了必备的spring web,OpenFeign2、每一个服务,包名:com.yanxizhu.ifamily.xxxxx(booking/firend/。。。服务名)3、模块名:ifamily-xxxxx(booking/fired/.......服务名)实例的包名:com.yanxizhu.ifamily.booking模块名:ifamily-booking四、设置总项目聚合各微服务一、随便复制一个微服务的pom文件,粘贴到总项目中。本次项目,如,复制ifamily-booking微服务中的pom.xml到总项目ifamily中。二、修改总项目中的pom.xml文件。1、修改模块名、项目名、描述修改前: <groupId>com.yanxizhu.ifamily</groupId> <artifactId>ifamily-booking</artifactId><!--1、模块名修改为总项目名--> <version>0.0.1-SNAPSHOT</version> <name>ifamily-booking</name><!--2、修改为总项目名--> <description>家庭管理-记账服务</description><!--3、修改为聚合服务,把其它微服务聚合起来-->修改后: <groupId>com.yanxizhu.ifamily</groupId> <artifactId>ifamily</artifactId> <version>0.0.1-SNAPSHOT</version> <name>ifamily</name> <description>聚合服务</description>2、删除服务依赖 <parent><!--删除父引用--> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.6.4</version> <relativePath/> <!-- lookup parent from repository --> </parent> 3、删除多余的依赖:4、添加类型,为pom<packaging>pom</packaging>5、聚合其他微服务模块 <modules><!--聚合其他微服务--> <module>ifamily-booking</module> </modules>最终的pom文件内容如下:<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.yanxizhu.ifamily</groupId> <artifactId>ifamily</artifactId><!--模块名修改为总项目名--> <version>0.0.1-SNAPSHOT</version> <name>ifamily</name><!--修改为总项目名--> <description>聚合服务</description><!--修改为聚合服务,把其它微服务聚合起来--> <packaging>pom</packaging><!--设置类型--> <modules><!--聚合其他微服务--> <module>ifamily-booking</module> </modules> <!--可以删除多余的其他依赖--> <!--最后把总项目添加到maven中--> </project>6、把总项目添加到maven中一共就上面6个步骤。之后再maven管理中就可以看到总服务聚合了其它微服务模块。总结: 1、删除父依赖 2、删除依赖 3、修改项目名、模块名、描述 4、设置类型 5、聚合其它微服务模块 6、将服务添加到maven中当在总项目执行命令时,其它项目也一起执行了,例如父模块clean,其它微服务模块也会同时clearn。五、过滤垃圾文件修改总项目总的.gitignore文件,过滤不需要提交到仓库的文件。**/mvnw **/mvnw.cmd **/.mvn **/target/ .idea **/.gitignore**/ :任意路径target: maven编译(complile)后产生的文件.idea: idea工具项目的.gitignore:子模块的.gitignore文件过滤的文件颜色为灰色。六、创建各微服务需要的公共模块创建一个maven的公共模块,选择总项目,右键新建module,选择Maven,(不用选择其它)直接下一步。填写公共模块名,包名。给公共模块的pom添加描述:<dependencies>各微服务公共的依赖,bean,工具类等等</dependencies>在各微服务中加入公共模块依赖:ifamily-booking微服务pom文件引入公共模块依赖:<dependency> <groupId>com.yanxizhu.ifamily</groupId> <artifactId>ifamily-common</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>最后就可以在公共模块中,引入一些各模块需要的依赖,如mybatis、Lombak,以及创建一个常用的公共工具类。相应的总项目总也会自动添加新建的common公共模块。<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.yanxizhu.ifamily</groupId> <artifactId>ifamily</artifactId> <version>0.0.1-SNAPSHOT</version> <name>ifamily</name> <description>聚合服务</description> <packaging>pom</packaging> <modules> <module>ifamily-booking</module> <module>ifamily-common</module> </modules> </project>新建工具包com.yanxizhu.common.utils至此,整个微服务项目就搭建好了。之后可以引入一些公共的工具类,还可以使用逆向共工程生成实体、server、controller等模块,可以看一篇《逆向工程生成各模块代码》。
2022年03月02日
243 阅读
0 评论
10 点赞