微服务实战
文章平均质量分 87
专门总结和研究关于微服务里面的实用技能
Danny_idea
热爱技术,热爱生活,一步一个脚印。
更多宝贵知识记录可以关注个人公众号:Idea的技术分享
展开
-
基于minikube搭建的SpringBoot实战
现在比较多的互联网公司都在尝试将微服务迁到云上,这样的能够通过一些成熟的云容器管理平台更为方便地管理微服务集群,从而提高微服务的稳定性,同时也能较好地提升团队开发效率。但是迁云存在一定的技术难点,今天这篇文章主要介绍如何从0开始搭建一套基于K8s部署的SpringBoot案例教程。基础环境准备:mac操作系统SpringBoot的简单Web工程minikube的环境搭建安装一个适合我们初级入门的k8s环境,比较好的推荐是使用minikube工具,同时使用该工具可以更好地降低我们对k8s的学习门原创 2021-11-08 07:52:59 · 2807 阅读 · 0 评论 -
微服务系列--聊聊微服务治理中的一些感悟
今年的大多数技术工作基本都是在围绕着技术功能开发进行,关于微服务治理相关部分从事了较多的研究,今晚想做个自己过去一段时间中遇到过的微服务治理问题做一些总结。微服务的调用链路思考自己所在的公司采用的微服务远程调用技术主要是基于Dubbo这款RPC开源框架,所以大部分的项目结构都基本是consumer,provider,interface这样的三个模块。然后早期在做微服务治理的时候,需要观测不同的微服务之间的调用了链路分析,于是就需要深入到各个微服务内部去研究。微服务的调用链路通常都会呈现如下图所示:原创 2021-10-23 14:39:12 · 356 阅读 · 0 评论 -
Dubbo实现不同分支不同测试环境
在对于dubbo的路由机制和注册机制有所了解之后,我们来分析一下如何实现dubbo服务的不同环境隔离。这一用法的大致思路为:正常的测试环境中存在着api-consumer调用user-provider的这么一个调用关系,这里我们暂时称之为default版本。假设某一天,业务方突然有一个a需求需要开发改动这个两个模块,此时就应该有这么一个关系链路出现,这里我们暂且称之为 version-a 版本。但是由于version-a版本还是待完善阶段,可能还有一些影响主流程的bug存在,直接发布到测试环境替原创 2021-01-01 17:47:19 · 674 阅读 · 2 评论 -
一文带你深入浅出zookeeper
zookeeper的基本概念zookeeper是一款开源的分布式协调服务框架,为分布式环境提供了一致性服务的功能,常见应用场景有:发布订阅,主动通知,文件管理,集群管理,分布式锁等功能。zk在设计的时候满足了cp两要素,即一致性和分区容错性。zookeeper的设计理念这里我参考以往的一些经验,将其简单囊括为了以下几点:一致性如下图所示,所有的客户端一旦连接到了集群环境中,不论访问的zk是leader角色还是follower角色,每个zk节点的数据都是相同的。假设某一时刻,zk的某个节点数据被修改原创 2020-11-14 10:47:05 · 292 阅读 · 0 评论 -
谈下我对TCC的一些理解
上一篇文章中讲解到了一些关于分布式事务模型2pc的简单介绍。2pc协议更多是应用于并发访问量不大的跨库场景中。但是由于其使用了大事务的原理,会在性能层面上造成一定的损失。下边来介绍一下另外一种技术方案:tcc。在过去的一周时间内,自己利用了一些碎片时间,大概地实践了下tcc这种设计思路在分布式事务应用中的落地实现。在讲解tcc之前,我们先来说说分布式环境中的一些必备理论基础内容点:CAP理论CAP定理是由加州大学伯克利分校Eric Brewer教授提出来的,他指出WEB服务无法同时满足以下3个属原创 2020-11-09 09:07:07 · 2036 阅读 · 0 评论 -
Dubbo-线程池调优实战分析
Dubbo的线程池压测调优dubbo的服务提供者端一共包含了两类线程池,一类叫做io线程池,还有一类叫做业务线程池,它们各自有着自己的分工,如下图所示dubbo在服务提供方中有io线程池和业务线程池之分。可以通过调整相关的dispatcher参数来控制将请求处理交给不同的线程池处理。(下边列举工作中常用的几个参数:)all:将请求全部交给业务线程池处理(这里面除了日常的消费者进行服务调用之外,还有关于服务的心跳校验,连接事件,断开服务,响应数据写回等)execution:会将请求处理进行分离,原创 2020-09-30 08:46:33 · 2446 阅读 · 0 评论 -
nacos服务注册剖析
最近正在整理关于使用nacos的一些笔记,最近进行一番文档的输出。使用版本 nacos-1.1.4版本nacos注册中心的简单介绍nacos其实是一款阿里巴巴开源的注册中心+配置中心,除此之外nacos还有很多强大的功能。nacos的文件目录在nacos安装包底下,我们可以大概看到nacos包含了以下几类文件夹,不同的文件底下存储了不同的数据信息。最后在target文件夹底下发现了nacos的jar包,因此我好奇地将其打开来一探究竟。发现内部的jar将nacos的管理台源代码给打包了一份。原创 2020-07-08 08:31:50 · 1366 阅读 · 0 评论 -
基于aop+自定义注解来构建多数据源的切换
针对微服务架构中常用的设计模块,通常我们都会需要使用到druid作为我们的数据连接池,当架构发生扩展的时候 ,通常面对的数据存储服务器也会渐渐增加,从原本的单库架构逐渐扩展为复杂的多库架构。当在业务层需要涉及到查询多种同数据库的场景下,我们通常需要在执行sql的时候动态指定对应的datasource。而Spring的AbstractRoutingDataSource则正好为我们提供了这一功能点,...原创 2020-03-09 21:53:29 · 673 阅读 · 0 评论 -
数据的异构实战(二)手写迷你版同步工程
首先在我们讲解RocketMQ之前,先从他的前身开始讲起—JMS。什么是Java消息服务?两个应用程序之间进行异步通信的API,它为标准消息协议和消息服务提供了一组通用接口,包括创建、发送、读取消息等,用于支持JAVA应用程序开发。在J2EE中,当两个应用程序使用JMS进行通信时,它们之间并不是直接相连的,而是通过一个共同的消息收发服务连接起来,可以达到解耦的效果,我们将会在接下来的教程中详细...原创 2019-10-20 23:05:44 · 315 阅读 · 0 评论 -
dubbo的spi机制分析和实战案例
java里面提供了一种内置的服务提供和发现机制,可以通过配置让一个程序在运行的时候动态加载该类的具体实现。这样子我们可以在调用某个相应接口的时候,同时达到调用某些具体类的实现功能。具体的代码案例如下所示:首先定义一个接口和两个接口的实现类:接口:/** * @author idea * @date 2019/5/16 */public interface PersonAction ...原创 2019-06-06 14:18:05 · 1760 阅读 · 2 评论 -
通俗易懂的Dubbo学习(四) 最简单地理解dubbo里面的RandomLoadBalance算法
dubbo里面的负载均衡采用了多种不同的算法来进行实现: RandomLoadBalance算法public class RandomLoadBalance extends AbstractLoadBalance { public static final String NAME = "random"; private final Random random = new ...原创 2018-08-31 16:26:35 · 1345 阅读 · 3 评论 -
eureka服务集群
首先,我们将两台eureka服务器集群在了一起,具体这样做的好处是:1.服务注册点的可靠性会提高,不会因为一台服务器崩溃了而导致后边的服务消费者们找不到服务点。2.多台eureka服务器集群之后就会出现服务共享的好处,这样的话,客户端的服务消费者只需要在注册时申明一个注册点即可,然后注册的服务在eureka1上显示之后,同样可以在相关联的集群中的其他机子上边出现具体操作: yml(peer1)文件...原创 2018-03-31 10:27:18 · 1234 阅读 · 0 评论 -
关于Dubbo的一些配置笔记
闲话不多说,主要是记录一些dubbo里面配置参数的含义和理解,方便后续查找的时候能够快速回忆起来。rpc暴露: <!--rpc服务,提供给外界调用--> <dubbo:service id="userRpcService" interface="com.sise.service.UserRpcService" ref="userService"> ...原创 2018-11-17 20:57:39 · 181 阅读 · 0 评论 -
通俗易懂的Dubbo学习(一) dubbo服务者和消费者的简单案例
随着互联网的不断发展,系统应用的规模也在不断扩大,常规的垂直类型应用架构已经无法较好的应对,所以分布式服务架构以及流动计算机架构的趋势越来越明显。在这种大规模类型的服务化架构到来之前,可能只是通过rmi,hessian等工具来进行简单的服务引用的处理,但是当规模量逐渐提升之后,过多的服务也带来了一定的繁琐问题,例如说对于服务url的管理。当不同服务的调用量逐渐提升之后,服务的容量问题也越来越不...原创 2018-08-12 12:07:06 · 1381 阅读 · 0 评论 -
通俗易懂的Dubbo学习(二)如何搭建dubbo的admin平台
在dubbo的服务体系里面提供了一个dubbo的服务管理平台,大致如下界面所示: 这个服务管理中心站点主要是提供给开发者进行错综复杂的服务管理使用的。里面提供了服务清单查询,服务压力分权,路由规则等丰富的功能。关于如何搭建:首先我们需要在下载相应的资源内容https://download.csdn.net/download/danny_idea/10598623 下载完成之后,相应...原创 2018-08-12 12:37:58 · 405 阅读 · 0 评论 -
通俗易懂的dubbo学习(三) dubbo里面的负载均衡
关于dubbo里面的负载均衡部分,实际上是可以通过一定的配置来进行设置的。 关于负载均衡的案例我们还是使用之前的消费者,生产者案例来进行说明: 我们在之前的基础上模拟一下开启两个服务提供者: 分别是服务开关Application1:package com.lh.pro.server;import org.springframework.context.support.ClassP...原创 2018-08-12 13:01:12 · 1431 阅读 · 0 评论