🐳Docker&K8S&云原生
文章平均质量分 87
Java开发之云原生
共饮一杯无
CSDN内容合伙人,杭州开发者社区主理人,Java领域优质创作者,2022年度博客之星TOP15,CSDN博客专家,51CTO 专家博主,华为云享专家,阿里云专家博主,InfoQ专家博主,持续输出干货,欢迎关注。
鲜衣怒马意气风发,愿你归来仍是少年。
展开
-
用户微服务用户注册功能实现
用户注册之前需要先给注册的手机号发送一条验证码,我们把验证码存储在Redis中。发送的时候我们先把验证码存储到Redis,然后用户发起注册的时候取出验证。这个异常显然不够友好,接下来我们定义全局异常配置。发送验证码接口,需要配置网关放放行发送验证码接口。原创 2022-11-14 09:52:41 · 6843 阅读 · 116 评论 -
SpringCloud Gateway网关为认证中心和用户微服务构建统一的认证授权入口
本文主要内容是通过构建一个网关微服务,作为统一的认证授权和访问入口。原创 2022-10-28 16:26:15 · 7548 阅读 · 75 评论 -
spring Cloud微服务 security+oauth2认证授权中心自定义令牌增强,并实现登录和退出
访问oauth/token,oauth2默认返回的授权token信息如下:如果不自定义可以看到访问oauth/token,默认访问的是TokenEndpoint下的接口/*** Oauth2 控制器} /*** 自定义 Token 返回对象** @return= null) {} }原创 2022-10-24 23:09:32 · 6353 阅读 · 46 评论 -
SpringCloud整合spring security+ oauth2+Redis实现认证授权
在微服务构建中,我们一般用一个父工程来通知管理依赖的各种版本号信息。父工程pom文件如下:构建eureka注册中心在SpringCloud微服务体系中服务注册中心是一个必要的存在,通过注册中心提供服务的注册和发现。具体细节可以查看我之前的博客,这里不再赘述。我们开始构建一个eureka注册中心,对应的yml配置文件如下:对应的项目启动类代码如下:至此,一个单体的服务注册中心搭建完成。上文我们已经完成了注册中心的搭建,接下来我们开始搭建认证授权中心。我们同样在父工程下面新建一个子工程,作为认证授权中心原创 2022-10-15 21:15:50 · 22265 阅读 · 91 评论 -
docker安装Oracle数据库
在Navicat选择【其他】,然后点击【表空间】,此时显示oracle数据库中所有的表空间,点击【新建表空间】。在【存储】标签页,输入文件类型、块大小、表压缩方式等。在【高级】标签页,设置其它选项,然后点击【保存】在【常规】标签页,输入表空间名称、大小、单位等。输入密码:helowin(密码都是一样的)表示要将Host上的路径挂载到容器中。表示docker重启是容器自动重启。输入表空间名称,然后点击【确定】此时表空间成功创建了。测试连接,连接成功。原创 2022-09-21 18:29:41 · 3956 阅读 · 48 评论 -
云原生中间件RocketMQ-核心原理之高可用机制
Zookeeper为分布式应用程序提供协调服务,Zookeeper的功能很强大,包括自动Master选举,RocketMQ的设计决定了它不需要进行Master选举,用不到这些复杂的功能,只需要一个轻量级的元数据服务器就足够了。中间件对稳定性要求很高,RocketMQ的NameServer只有很少的代码,容易维护,所以不需要再依赖另一个中间件,从而减少整体维护成本。本文内容到此结束了,如有错误❌疑问💬欢迎各位指出。主页共饮一杯无的博客汇总👨💻保持热爱,奔赴下一场山海。🏃🏃🏃。原创 2022-09-04 21:52:29 · 8372 阅读 · 70 评论 -
云原生中间件RocketMQ-核心原理之同步_异步刷盘,同步_异步复制解析
发送时,Producer将不同topic的所有消息都会顺序写入Commit Log中,Broker端的后台服务线程—ReputMessageService不停地分发请求并异步构建ConsumeQueue(逻辑消费队列)和IndexFile(索引文件)数据,不停的轮询,将当前的consumeQueue中的offSet和commitLog中的offSet进行对比,将多出来的offSet进行解析,然后put到consumeQueue中的MapedFile中。的触发写磁盘动作,会明显降低性能。...原创 2022-08-31 10:07:39 · 7958 阅读 · 32 评论 -
云原生中间件RocketMQ-核心原理之消息存储结构解析
从主流的几种MQ消息队列采用的存储方式来看,主要会有三种分布式KV存储:这种存储方式对于消息读写能力要求不高的情况可以使用,比如ActiveMQ中采用的levelDB。文件系统存储:这种方案适合对于有高吞吐量要求的消息中间件,因为消息刷盘是一种高效率,高可靠、高性能的持久化方式,除非磁盘出现故障,否则一般是不会出现无法持久化的问题。常见的比如kafka、RocketMQ、RabbitMQ都是采用消息刷盘到所部署的机器上的文件系统来做持久化。关系型数据库。...原创 2022-08-26 14:30:30 · 1758 阅读 · 38 评论 -
云原生中间件RocketMQ-消费者消费模式之广播模式、偏移量offset解析
msgId一定是全局唯一标识符,但是实际使用中,可能会存在相同的消息有两个不同msgId的情况(消费者主动重发、因客户端重投机制导致的重复等),这种情况就需要使业务字段进行重复消费。: 当使用广播消费模式时, 消息队列 RocketMQ 会将每条消息推送给集群内所有注册过的客户端, 保证消息至少被每台机器消费一次。相比于集群模式,广播模式的特点为: 每个消费者都会消费所订阅的Topic + Tag下的所有queue中的所有消息。在广播模式下,RocketMQ 可以保证至少被每台机器消费一次。原创 2022-08-21 10:28:35 · 16561 阅读 · 51 评论 -
【云原生】查看 Docker 容器启动命令和相关参数
Linux 一般都默认安装了 Python 2,而 Python2 就附带了 pip 命令,但 2 版本的 pip 经常在安装包的时候出错,所以建议安装 Python3。如果不想安装Python3,可以执行如下命令安装runlike。如有错误❌疑问💬欢迎各位大佬指出。查看Python3版本。本文内容到此结束了,原创 2022-08-19 15:24:53 · 3384 阅读 · 25 评论 -
云原生中间件RocketMQ-消费者核心参数、消费模式之集群模式
消费者采用负载均衡(集群模式)方式消费消息,一个分组(Group)下的多个消费者共同消费队列消息,每个消费者处理的消息不同。一个Consumer Group中的各个Consumer实例分摊去消费消息,即一条消息只会投递到一个Consumer Group下面的一个实例。: 单队列并行消费允许的最大跨度,默认值2000, 队列级别的流量控制阈值,拉消息本地队列缓存消息最大数,默认1000。: 消息拉取时间间隔,由于是长轮询,所以为0,但是如果应用为了流控,也可以设置大于0的值,单位毫秒,默认0。...原创 2022-08-14 15:27:49 · 20929 阅读 · 61 评论 -
【云原生】RPC调用-Dubbo
微服务在维基上对其定义为:一种软件开发技术- 面向服务的体系结构(SOA)架构样式的一种变体,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。Dubbo(读音[ˈdʌbəʊ])是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。...原创 2022-08-11 10:00:31 · 2369 阅读 · 28 评论 -
【云原生】SpringCloud系列之服务调用OpenFeign(日志配置、异常解码器、更改负载均衡策略、替换默认通信组件等)
BasicAuth 在 Feign 中默认提供了拦截器,我们只需要配置一下就可以使用,如果我们需要自定义拦截器,可以参考 BasicAuth 的代码,只要实现 RequestInterceptor 接口,在 apply 方法中编写你自己的逻辑就可以了,通过 RequestTemplate 可以进行很多操作,比如添加指定的请求头信息,这个可以用在服务间传递某些信息的时候。Feign 中提供了异常的解码器,但我们也可以自定义异常解码器,自定义异常解码器可以用于内部服务之间调用的异常传递。本文内容到此结束了,..原创 2022-08-07 10:37:06 · 3002 阅读 · 47 评论 -
【云原生】SpringCloud系列之服务调用OpenFeign(基本概念和使用步骤)
我们开发的 API 都用的是 Spring MVC 的注解,比如 RequestMapping 等,Feign 的注解是单独的一套,所以我们编写调用 Client 接口时,需要根据已有的接口来编写,在 spring-cloud-openfeign 中,实现了 Spring MVC 的一套注解,调用方 Client 接口中的注解和 API 方可以一致,非常方便。这里有个重要细节,当我们引入 OpenFeign 的时候,在 Maven 依赖中会出现 netflix-ribbon 负载均衡器的身影。......原创 2022-08-06 21:43:41 · 2438 阅读 · 14 评论 -
云原生中间件RocketMQ-快速入门
生产组用于消息的发送。消费组用于消息的订阅处理。生产组和消费组,方便扩缩机器,增减处理能力,集群组的名字,用于标记用途中的一员。每次只会随机的发给每个集群中的一员。原创 2022-07-24 21:50:31 · 5453 阅读 · 44 评论 -
【云原生】持续集成和部署(Jenkins)
采用持续部署的组织可以将新功能快速传递给用户,得到用户对于新版本的快速反馈,并且可以迅速处理任何明显的缺陷。这是一个整体的过程,因为构建、部署和环境都是一起执行和测试的,它能让构建在实际的生产环境可部署和可验证。持续交付并不是指软件每一个改动都要尽快部署到产品环境中,它指的是任何的代码修改都可以在任何时候实施部署。CI的目标是将集成简化成一个简单、易于重复的日常开发任务,这样有助于降低总体的构建成本并在开发周期的早期发现缺陷。持续交付的目标是拥有一个可随时部署到生产环境的代码库。本文内容到此结束了,...原创 2022-07-22 21:32:43 · 4035 阅读 · 18 评论 -
【云原生】K8S包管理(helm)
而helm就是k8s的包管理软件,用来给k8s平台安装各种组件包或者服务包。helm通过chart依赖来解决所部署的k8s应用之间的依赖。安装后的mysql可以通过kubectlrun命令在pod上启动mysql服务。我们使用kubectl命令部署过该Python服务,现在,我们用helm来部署。如有收获欢迎点赞👍收藏💖关注✔️,您的鼓励是我最大的动力。然后,安装mysql包到k8s,可以看到安装的。在不同平台上,通过对应平台的包管理软件,...原创 2022-07-16 13:25:20 · 5370 阅读 · 17 评论 -
【云原生】容器编排K8S
kubectl 是用来与 Kubernetes 集群通讯的命令行工具。通过 Kubectl 可以在 Kubernetes 集群上完成如下操作:kubectl 适配了不同操作系统不同指令架构的安装版本生产环境的 kubernetes 集群安装涉及到较多细节,也不适合在个人机器上安装和学习。开发者学习 kubernetes 可以使用的环境有几种:从成本上来说,在开发者主机上安装和配置是比较方便的。以学习为目的,在个人主机上安装和配置 kubernetes 有两个可选的套装kind 或者 minikube 不会安原创 2022-07-13 22:24:46 · 5353 阅读 · 29 评论 -
【云原生】容器服务(K8s版)使用 Kubectl 部署 web 服务到 K8s 集群
首先,我们需要将业务应用部署到 k8s 集群中。这里我们已经准备好了一个应用并打包成镜像,镜像地址如下:registry.cn-shanghai.aliyuncs.com/workbench_1459088147016887/handson_ack_test:3这是一个使用 spring boot 开发的 java web 应用。这个应用会监听 8080 端口,接受所有路径的访问,并输出一些环境基本信息。要让这个 web 应用的镜像在 k8s 中运行,我们首先要定义一个 deployment 资源。原创 2022-07-04 17:51:29 · 4520 阅读 · 30 评论 -
云原生中间件RocketMQ(二)源码包结构和集群架构模型
进入rocket的github官方地址:https://github.com/apache/rocketmq可以看到当前最新的 releases 版本是4.9.4,下载最新的源码包到本地。执行以下命令解压源码包,并通过maven打包构建。源码包模块结构说明::主要的业务逻辑,消息收发,主从同步,pagecache。:客户端接口,比如生产者和消费者。:公用数据结构等等。:编译模块,编译输出等。:示例,比如生产者和消费者。:进行Broker过滤的不感兴趣的消息传输,减小带宽压力。:日志相关原创 2022-07-03 21:38:17 · 5861 阅读 · 26 评论 -
【云原生】SpringCloud系列之客户端负载均衡Ribbon
在微服务架构中,负载均衡是必须使用的技术,通过它来实现系统的高可用、集群扩容等功能。负载均衡可以分为两种:服务端负载均衡和客户端负载均衡。通常所说的负载均衡指服务器负载均衡,可通过硬件设备或软件来实现,硬件比如:F5、Array等,软件比如:LVS、Nginx等。负载均衡按实现方式分类可区分为:服务端负载均衡(比如Nacos负载均衡)与客户端负载均衡。SpringCloud Ribbon是基于客户端的负载均衡工具,它可以将面向服务的 REST 模板请求自动转换成客户端负载均衡的服务调用。执行过程如下图:原创 2022-07-01 11:20:09 · 7072 阅读 · 19 评论 -
【云原生】腾讯带着北极星(spring-cloud-tencent)也来卷云原生了,一起瞅瞅吧
北极星是腾讯开源的服务发现和治理中心,致力于解决分布式或者微服务架构中的服务可见、故障容错、流量控制和安全问题。虽然,业界已经有些组件可以解决其中一部分问题,但是缺少一个标准的、多语言的、框架无关的实现。北极星在腾讯内部的服务注册数量超过百万,日接口调用量超过十万亿,通用性和稳定性都得到了大规模的验证。Spring Cloud Tencent 于6月14日正式对外开源,作为腾讯开源的一站式微服务框架,Spring Cloud Tencent 实现了 Spring Cloud 标准微服务 SPI ,开发者可原创 2022-06-24 18:18:55 · 8697 阅读 · 5 评论 -
【云原生】SpringCloud系列之服务治理Eureka
Netflix Eureka 是一款由 Netflix 开源的基于 REST 服务的注册中心,用于提供服务发现功能。Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,基于 Netflix Eureka 进行了二次封装,主要负责完成微服务架构中的服务治理功能。Spring Cloud Eureka 是一个基于 REST 的服务,并提供了基于 Java 的客户端组件,能够非常方便的将服务注册到 Spring Cloud Eureka 中进行统一管理。...原创 2022-06-24 13:05:10 · 7481 阅读 · 23 评论 -
云原生中间件RocketMQ(一)基本概念&功能特性&架构设计&环境搭建
云原生中间件RocketMQ(一)基本概念&功能特性&架构设计&环境搭建原创 2022-06-18 23:06:33 · 5667 阅读 · 1 评论 -
Java 诊断工具 Arthas 常见命令使用和实战(排查函数调用异常、热更新、调用方法函数、查看堆栈调用等)
Java 诊断工具 Arthas 常见命令使用和实战(排查函数调用异常、热更新、调用方法函数、查看堆栈调用等)原创 2022-06-17 13:17:04 · 25160 阅读 · 8 评论 -
云原生应用的概念和云原生应用的 15 个特征
微服务架构只是一种软件架构风格,并不限制所采用的实现技术,开发团队可以自由选择最合适的技术来实现。微服务架构实现最大的挑战是它的复杂度,这些复杂度是微服务架构本身天然所具备的,是每个微服务架构应用绕不开的难题。在实现微服务架构时,开发团队当然希望把全部的精力放在实现业务逻辑上,而不是应对微服务架构自身的复杂度,这就意味着,需要选择能够帮助应对这些复杂性的平台和工具。云原生(Cloud Native)应用就是微服务架构的最佳实现方式。...原创 2022-06-12 20:55:52 · 7646 阅读 · 26 评论 -
微服务中的Spring Cloud和Spring Cloud Alibaba分别有哪些组件和作用,众多组件中如何做技术选型?
随着互联网、物联网的广泛应用,高并发应用程序在数量与体量上都在以指数级提高,传统的单体应用、SOA 等架构已经不足以支撑新环境对应用性能与可靠性的要求。此时微服务架构开始闪亮登场了😎。...原创 2022-06-11 23:43:52 · 10516 阅读 · 10 评论 -
Docker 容器中的域名解析配置问题解决的四种方式
Docker 容器中的域名解析配置问题解决的四种方式原创 2022-06-10 12:57:13 · 14733 阅读 · 6 评论 -
Docker安装Redis并配置启动
Docker安装Redis并配置启动原创 2022-05-19 17:48:03 · 7798 阅读 · 3 评论 -
Linux安装Docker并配置Docker镜像加速,daemon.json完整配置详解
🍇安装docker🍈启动、停止、重启Docker🍉Docker配置文件🍊配置 Docker 阿里镜像加速器🍋daemon.json完整配置说明原创 2022-05-18 06:00:00 · 29715 阅读 · 4 评论 -
Docker命令汇总
Docker 进程相关命令启动docker服务:systemctl start docker停止docker服务:systemctl stop docker重启docker服务:systemctl restart docker查看docker服务状态:systemctl status docker设置开机启动docker服务:systemctl enable dockerDocker 镜像相关命令查看镜像:查看本地所有的镜像docker imagesdocker i原创 2022-03-16 13:08:49 · 7409 阅读 · 0 评论 -
添加docker权限给其他用户使用
添加docker group:sudo groupadd docker上面执行如果提醒组已经存在,则继续执行下面操作。将当前用户添加到docker组:sudo gpasswd -a ${USER} docker重启docker服务:sudo service docker restart原创 2022-03-10 10:16:56 · 6498 阅读 · 0 评论