自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 NIO-ByteBuffer与字符串互相转换

字符串转换为ByteBuffer//1、字符串转换为ByteBufferByteBuffer buffer = ByteBuffer.allocate(16);buffer.put("hello".getBytes());buffer.flip(); //切换到读模式System.out.println((char) buffer.get(1));//2、charset 会自动切换到读模式ByteBuffer buffer1 = StandardCharsets.UTF_8.encode("

2021-09-16 14:06:49 630 1

原创 NIO-ByteBuffer的使用和内部结构

ByteBuffer的使用方法通过Channel把数据写入到ByteBuffer调用flip()切换到读模式从ByteBuffer读取数据,例如:buffer.get();调用clear()或者compact()切换到写模式重复1-4步骤ByteBuffer的内部结构ByteBuffer有三个重要属性:capacity(容量)position(指针)limit(读/写限制)创建缓冲区:写入到缓冲区切换成读模式通过clear()切换成写模式通过compact(

2021-08-18 11:06:01 128

原创 设计模式-命令模式

本文章根据搜索命令模式的百度百科来进行理解的使用场景系统需要将请求调用者和接收者解耦,使得调用者和接收者不直接交互;系统需要在不同的时间指定请求、将请求排队和指定请求;系统需要支持命令的撤销操作和恢复操作;系统需要将一组操作组合在一起,即支持宏命令。概述实现行为请求者和行为实现者松耦合,并将一组行为抽象为对象,这就是命令模式。注:命令模式尝试以物件代替实际行动。优点降低对象之间的耦合度;新的命令可以很容易加入到系统中;可以比较容易地设计一个组合命令;调用同一方法实现不同的.

2021-07-02 16:51:28 117

原创 服务熔断Hystrix前言(服务容错的核心知识)

雪崩效应如图所示,由于网络原因或者系统自身原因,服务B调用服务C的时候没能及时响应, 服务A和服务B处于阻塞状态,直到服务C响应,此时若有大量的请求服务A,容器的线程池资源就会被消耗完,会导致服务A和服务B瘫痪;服务与服务之间的依赖性,故障会传播,造成连锁反应,会对整个微服务系统造成灾难性的后果,这就是服务故障的“雪崩”效应。造成“雪崩”效应的原因多种多样,从源头上无法完全杜绝雪崩的发生,但是雪崩效应的根本原因是服务之间的强依赖。有效解决雪崩效应的方法:熔断、隔离和限流。雪崩效应的解决方法

2021-07-01 16:55:19 104

原创 Feign概述

Feign是Netflix开发的声明式,模板化的HTTP客户端;Feign不仅支持自身的注解,还支持JAX_RS注解;SpringCloud对Feign进行了增强,使Feign支持了SpringMVC注解,并整合了Ribbon和Eureka。Feign和Ribbon的联系Ribbon是一个基于HTTP和TCP的客户端负载均衡组件,可以在客户端配置服务端列表,使用HTTPClient或者RestTemplate进行http请求。Feign 整合了Ribbon,就是一个使用起来更加方便的HTTP.

2021-06-30 15:46:14 106

原创 Consul概述

1、Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置;2、Consul使用Go语言编写,因此具有天然可移植性(支持Linux、Windows和Mac OS X);3、Consul安装包仅包含一个可执行文件,方便部署,与Docker等轻量级容器无缝衔接。4、Consul使用Raft算法来保证一致性相对于Zookeeper使用的Paxos算法更加直接。5、支持http和dns协议接口6、提供web管理界面Consul特性1、服务注册与发现2、健康检查.

2021-06-28 15:28:30 271

原创 Eureka监控页面显示ip(手动配置实例ID)

监控页面显示ip(手动配置实例ID)文字描述在EurekaServer的管控平台中,默认显示的服务实例名称是微服务定义的名称和端口;为了方便服务查看和定位,可以在服务提供者配置文件中,添加配置以便在EurekaServer管控平台中看到服务的ip:port代码spring: application: name: product_serviceserver: port: 8761eureka: client: serviceUrl: #eurekaserver的请求路径

2021-06-17 09:23:33 919

原创 EurekaServer高可用集群

文字描述1、准备2个EurekaServer,需要相互注册。1号EurekaServer2号EurekaServer2、需要将微服务注册到两个EurekaServer上。

2021-06-16 14:25:43 81

原创 Eureka的使用的基本步骤

Eureka的使用步骤搭建EurekaServer1.1创建工程1.2导入坐标1.3配置application.yml1.4配置启动类将服务提供者(EurekaClient)注册到EurekaServer服务消费者通过注册中心获取服务列表并调用

2021-05-26 11:52:01 728

原创 telnet命令

telnet命令简介telnet是一个协议,是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式,使用telnet命令可以在本地计算机操作远程主机工作。telnet的作用1、主要应用于Internet会话,基本功能就是允许用户登录进入远程主机系统。2、可用于判断服务器的端口是否打开,例如:telnet 127.0.0.1 1525(测试127.0.0.1主机的1525端口是否打开)telnet原理(交互过程)1、本地telnet客户端程序和远程telnet服务

2021-04-18 16:25:34 542

原创 MD5信息摘要算法

MD5简介MD5信息摘要算法(MD5 message digest algorithm);一种广泛使用的密码散列函数;可以生成一个128位(16字节)的散列值;可以将任意长度的输入串经过计算得到固定长度的输出;MD5算法是不可逆的,即得到了加密后的密文后,也不可能通过解密算法算出明文,只能通过相同的明文加密得到相同的密文;(但是已经被证实存在弱点,可以被加以破解,对于安全性要求比较高的不建议使用)MD5应用用于密码管理使用了MD5的加密后的密文只能通过相同的明文加密产生原理;把加密后

2021-04-14 11:59:23 275

原创 Eureka微服务注册中心

背景可以想像使用HttpUrlConnection和RestTemplate等类去调用一个http接口,这个时候会有大量的接口地址需要配置,所以出现了Eureka服务注册中心。应用场景在微服务中,有很多个服务的ip和端口等需要各种调用,为了方便管理各个服务的接口信息和调用。Eureka的交互流程Eureka记录了服务和服务地址的映射关系,服务会注册到这里,当服务需要调用其他服务时,在这里可以找到服务调用地址从而进行调用。Eureka的基本架构包括:Eureka Server提供服

2021-03-20 22:20:26 92

原创 spingCloud的简介

1、springCloud是一系列框架的有序集合;在springBoot的基础上又增加了一堆微服务的相关的规范;2、通过组件的方式把各个厂商比较优秀的微服务框架整合到一起形成了spirngCloud(微服务技术栈)。...

2021-03-20 16:45:07 68

原创 springCloud中的相关概念

1、服务注册与发现服务注册:生产者服务实例将自身的服务信息注册到注册中心;这部分服务信息包括服务所在主机IP和服务port,以及服务自身的状态和访问协议等。服务发现:消费者服务请求注册中心所依赖服务信息;消费者服务实例通过注册中心获取生产者服务实例信息,通过这些信息去获得生产者提供的服务。2、负载均衡通过某种方式(技术/算法)把客户端的请求可以均匀的分发到各个服务器上,进而提高系统的性能。3、熔断在互联网系统中,当生产者服务因压力过大响应过慢或者失败,为了保护系统整体可用性,切断对生产

2021-03-20 16:38:03 49

原创 分布式架构核心概念

分布式架构核心概念RPC(Remote Procedure Call)远程过程调用。1、允许两个节点之间像调用本地服务一样调用远程服务;2、RPC的目标是让远程调用更简单、透明;3、RPC框架负责封装底层传输方式(TCP/UDP协议)、序列化方式(json/xml/二进制)和通信细节,开发者不需要关系底层。RESTful(Representational State Transfer)表述性状态转移1、一个架构符合REST约束条件和原则,就是RESTful架构;2、目前只有HTT

2021-03-11 18:17:20 565 1

原创 Java系统架构的演变

单体应用架构这个做Java的应该都很熟悉,就是一个项目的所有代码都在一个web服务器上部署。优点:开发简单,适用于小型项目;缺点:代码高度耦合,不利于大型项目的开发(代码的扩展性和并发量等)。垂直架构针对单体应用的缺点,开始出现垂直架构。优点:解决高并发;代码解耦等;缺点:系统间相互独立,重复代码开发工作比较多。分布式架构针对垂直架构的缺点,开始出现分布式架构;只说单纯分布式的话包含两层:1、展示层;2、服务层。缺点:服务的评估、治理和调度都没有;SOA分布式架构针对单

2021-03-07 22:18:16 172 1

原创 @JsonDeserialize注解的使用

@JsonDeserialize注解的使用问题描述:原因分析:解决方案:问题描述:某次上线项目之后,把数据保存的数据创建时间也回传到前端了,前端会把后端所有的数据都传到后端,这个时候后端解析不了,导致调用接口一直出现错误。原因分析:后端接收创建时间字段的时候没有格式化为后端可以识别的Date类型解决方案:在接收前端传过来的实体类上增加@JsonDeserialize注解。@JsonDeserialize(using = DateTimeJsonDeserializer.class)priva

2021-03-02 17:19:32 7946

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除