Yezhiwei Blog

平时多流汗,战时少流血!

SpringBoot访问MongoDB数据库

MongoDB简介 MongoDB是一个基于分布式文件存储的数据库,它是一个介于关系数据库和非关系数据库之间的产品,其主要目标是在键/值存储方式(提供了高性能和高度伸缩性)和传统的RDBMS系统(具有丰富的功能)之间架起一座桥梁,它集两者的优势于一身。 传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(data...

SpringBoot-服务端参数验证-JSR-303验证框架

参数的合法性验证是一个必不可少的步骤

作为服务端开发,验证前端传入的参数的合法性是一个必不可少的步骤,但是验证参数基本上是一个体力活,而且冗余代码繁多,也影响代码的可阅读性,所以有没有一个比较优雅的方式来解决这个问题? JSR-303验证框架,JSR-303 是Java EE 6 中的一项子规范,叫做BeanValidation,官方参考实现是Hibernate Validator(与Hibernate ORM 没有关系),JS...

RESTful API设计安全性

幂等性 幂等性(Idempotent)在这里表示发送一次和多次请求引起的边界效应是一致的。如在网速不够快的情况下,客户端发送一个请求后没有立即得到响应,由于不能确定是否请求是否被成功提交,所以有可能会再次发送另一个相同的请求,幂等性决定了第二个请求是否有效。 HTTP7种方法中的(GET、HEAD和OPTIONS)均是幂等方法。由于DELETE和PATCH请求操作的是现有的某个资源,所以它们...

RESTful API设计基础认识

我们知道一旦API发布后,就很难对它做很大的改动并且保持像先前一样的正确性。所以在这之前我们要做一些规范。 协议 API与用户的通信协议,总是使用HTTPS协议。 所有的访问API行为,都需要用 TLS 通过安全连接来访问。没有必要搞清或解释什么情况需要 TLS 什么情况不需要 TLS,直接强制任何访问都要通过 TLS。 理想状态下,通过拒绝所有非 TLS 请求,不响应 http 或80端口...

SpringCloud-Hystrix-Dashboard监控面板

Hystrix Dashboard 让你更了解系统的运行情况

Hystrix Dashboard 断路器的打开和关闭状态的变化是由系统收集一些重要参数,当达到条件时才触发的。而这些请求情况的指标信息都是Hystrix Command和Hystrix Observable Command实例在执行过程中记录的重要信息,为了帮助我们系统运维或性能优化做出判断,Hystrix Dashboard实现Hystrix指标数据的可视化。 接口实现使用了@Hystr...

Java编码规范

OOP 类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:DO / BO / DTO / VO / AO。 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。 抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类 命名以它要测试的类的名称开始,以 Test 结尾。 POJO...

SpringCloud-Hystrix-让你的系统稳一点儿

服务容错保护(服务降级、依赖隔离、断路器)

背景 在微服务架构中,我们将系统拆分成了一个个的服务单元,各单元应用间通过服务注册与订阅的方式互相依赖。由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服务自身问题出现调用故障或延迟,而这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不断增加,最后就会出现因等待出现故障的依赖方响应而形成任务积压,线程资源无法释放,最终导致自身服务...

Feign封装RESTfulAPI简化客户端调用

Feign对服务的声明式定义和调用

Spring Cloud Feign 在此之前,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端,使用起来很不方便,需要了解URL,有时还需要拼装真正请求的URL。有没有一种用起来更方便、更优雅的方式吗?答案是肯定的,Spring Cloud想到了这些————Feign。Spring Cloud Feign是一套基于Netflix Feign实现...

Hadoop集群环境搭建

配置虚拟机CentOS 修改IP cd /etc/sysconfig/network-scripts sudo vim ifcfg-eth0 重启服务 sudo /etc/init.d/network restart 两台虚拟机使用相同的网卡,需要重新安装网卡 通过 ifconfig查看,虚拟机使用相同的网卡eth0,所以需要卸载,在vmware设置中移除[网络适配器],...

Spring Cloud Ribbon简化负载均衡调用服务端实战

Spring Cloud Ribbon Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。它是一个基于HTTP和TCP的客户端负载均衡器。它可以通过在客户端中配置ribbonServerList来设置服务端列表去轮询访问以达到均衡负载的作用。 当Ribbon与Eureka联合使用时,ribbonServerList会被DiscoveryE...