微服务
文章平均质量分 86
微服务
兀坐晴窗独饮茶
我的个人博客 http://knightzz.cn/
展开
-
SpringBoot常用注解总结
定义在main方法入口类处,用于启动sping boot应用项目@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@Configuration@EnableAutoConfiguration@ComponentScan让spring boot根据类路径中的jar包依赖当前项目进行自动配置在src/main/resources的META-INF/spring.factories@EnableAu原创 2024-05-17 10:40:35 · 895 阅读 · 2 评论 -
SpringBoot自定义Starter
在我们的日常开发工作中,经常会有一些独立于业务之外的配置模块,比如对 web 请求的日志打印。我们经常将其放到一个特定的包下,然后如果另一个工程需要复用这块功能的时候,需要将代码硬拷贝到另一个工程,重新集成一遍,这样会非常麻烦。如果我们将这些可独立于业务代码之外的功配置模块封装成一个个 starter,复用的时候只需要将其在 maven pom 中引用依赖即可,让 SpringBoot 为我们完成自动装配,提高开发效率。原创 2024-05-15 17:01:46 · 623 阅读 · 0 评论 -
Elasticsearch7.x - REST 基础操作
对比关系型数据库,创建索引就等同于创建数据库在 Postman 中,向 ES 服务器发 **PUT **请求 :http://127.0.0.1:9200/shopping如果重复添加索引,会返回错误信息在 Postman 中,向 ES 服务器发 **GET **请求 ::::warning这里请求路径中的_cat 表示查看的意思,indices 表示索引,所以整体含义就是查看当前 ES服务器中的所有索引,就好像 MySQL 中的 show tables 的感觉,服务器响应结果如下:::原创 2023-05-15 20:24:20 · 1115 阅读 · 1 评论 -
从零开始搭建Dubbo环境并整合Dubbo+SpringBoot
以上教程适用于dubbo-admin-0.1.0 , 高版本其他内容大致一样, 但是如果访问http://localhost:8081/#/不行的话, 可能需要dubbo-admin-ui目录下执行。我们需要分别创建两个SpringBoot项目, 分别是 dubbo-spring-consumer 和 dubbo-spring-provider, 一个是消费者, 一个是提供者。UserService 这里和之前的一样, 我们不需要具体的实现 因为我们要调用 dubbo-spring-provider。原创 2023-01-08 21:25:04 · 639 阅读 · 0 评论 -
微服务系列(8)- Gateway服务网关
1. Gateway服务网关1.1 网关的作用Gateway网关是我们服务的守门神,所有微服务的统一入口, 有些微服务是企业内部使用的, 不能让所有的微服务都可以互相访问到, 所以我们需要一个特殊的 “门” 来拦截请求, 并决定是否放行Gateway的核心功能 :请求路由权限控制限流权限控制:网关作为微服务入口,需要校验用户是是否有请求资格,如果没有则进行拦截。路由和负载均衡:一切请求都必须先经过gateway,但网关不处理业务,而是根据某种规则,把请求转发到某个微服务,这个过程叫做路原创 2022-04-24 21:35:32 · 3279 阅读 · 1 评论 -
微服务系列(7)- Feign使用与优化
1.Feign远程调用1.1 Feign介绍先来看我们以前利用RestTemplate发起远程调用的代码String url = "http://user-service/user/" + order.getUserId();User user = restTemplate.getForObject(url, User.class);RestTemplate调用存在下面的问题:代码可读性差,编程体验不统一参数复杂URL难以维护而Feign是一个声明式的http客户端,官方地址:http原创 2022-04-22 17:27:28 · 1180 阅读 · 0 评论 -
微服务系列(6)- Nacos配置管理
1.Nacos配置管理1.1 统一配置管理当微服务部署的实例逐渐增多的时候(几十上百台), 假如我们要修改配置时, 逐一修改就非常的麻烦!所以Nacos提供了统一的统一配置管理方案,可以集中管理所有实例的配置。Nacos一方面可以将配置集中管理,另一方可以在配置变更时,及时通知微服务,实现配置的热更新。1.2 Nacos配置管理1.2.1 添加配置在配置列表中添加配置 :点击加号以后添加如下配置 : Data ID: [服务名]-[profile].[后缀]注意 :项目的核心配置原创 2022-04-22 10:59:41 · 1636 阅读 · 1 评论 -
微服务系列(5)- Nacos负载均衡与环境隔离
1.Nacos负载均衡1.1 集群负载均衡我们通过修改启动参数新添加一个实例 :参数如下 :-Dserver.port=8083 -Dspring.cloud.nacos.discovery.cluster-name=SH指定 user-service 的8083的实例集群为上海集群从Nacos的Web页面我们可以看到, 此时有三个实例, 两个所属杭州集群, 另外两个所属上海集群默认情况下 Nacos 还是使用的轮询的负载均衡策略, 如果我们想要实现集群优先的负载均衡的话, 就要添加如下原创 2022-04-21 15:53:24 · 1051 阅读 · 0 评论 -
微服务系列文章
微服务系列(1)- 简单远程调用与接口提供者和消费者微服务系列(2)- Eureka微服务注册中心微服务系列(3)- Ribbon负载均衡微服务系列(4)- Nacos注册中心原创 2022-04-21 14:24:37 · 252 阅读 · 1 评论 -
微服务系列(4)- Nacos注册中心
1. Nacos安装与使用1.1 Nacos下载在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码:GitHub主页:https://github.com/alibaba/nacosGitHub的Release下载页:https://github.com/alibaba/nacos/releases找到 Nacos的安装包以后直接下载即可下载地址 : nacos-server下载完成后解压即可!1.2 Nacos安装与使用Nacos的默认端口是8原创 2022-04-21 14:22:25 · 693 阅读 · 0 评论 -
微服务系列(3)- Ribbon负载均衡
1. Ribbon负载均衡1.1 负载均衡原理SpringCloud底层其实是利用了一个名为Ribbon的组件,来实现负载均衡功能的。1.2 负载均衡源码原理 : LoadBalancerInterceptor 类会对RestTemplate的请求进行拦截. 然后从Eureka根据服务id获取服务列表,随后利用负载均衡算法得到真实的服务地址信息,替换服务id。浏览器发出请求后, 先被 LoadBalancerInterceptor 的 intercept 所拦截 // LoadBalanc原创 2022-04-20 14:47:21 · 701 阅读 · 2 评论 -
微服务系列(2)- Eureka微服务注册中心
1. Eureka注册中心1.1 前言提问 : 假如我们的服务提供者user-service部署了多个实例,如图:我们需要思考几个问题 :order-service在发起远程调用的时候,该如何得知user-service实例的ip地址和端口?有多个user-service实例地址,order-service调用时该如何选择?order-service如何得知某个user-service实例是否依然健康,是不是已经宕机?1.2 Eureka的结构和作用这些问题都需要利用原创 2022-04-15 20:59:33 · 490 阅读 · 0 评论 -
微服务系列(1)- 简单远程调用与接口提供者和消费者
1. 过程调用假如已知我们有两个微服务, 此时我们不使用任何注册中心, 完成一个简单的远程过程调用order-service:订单微服务,负责订单相关业务user-service:用户微服务,负责用户相关业务案例需求 :修改order-service中的根据id查询订单业务,要求在查询订单的同时,根据订单中包含的userId查询出用户信息,一起返回2. 代码案例2.1 定义RestTemplateBean在 Order 微服务的 Applicaiton中 添加 RestTempla原创 2022-04-14 19:42:18 · 859 阅读 · 0 评论