- 博客(26)
- 资源 (13)
- 收藏
- 关注
原创 zookeeper之服务注册发现
产品服务controller:@RestController@RequestMapping("/product")public class ProductController { @RequestMapping("/getProduct/{id}") public Object getProduct(HttpServletRequest request, @PathVariable("id") String id) { return new Product(id,"
2020-11-10 21:59:54 178
原创 zookeeper之curator操作
创建sessionpublic class CuratorClientUtils { private static CuratorFramework curatorFramework; private final static String CONNECTSTRING="172.17.0.2:2181"; public static CuratorFramework getInstance(){ curatorFramework= CuratorFramewo
2020-11-08 12:32:40 135
原创 zookeeper之zkclient操作
创建sessionpublic class SessionDemo { private final static String CONNECTSTRING="172.17.0.2:2181"; public static void main(String[] args) { ZkClient zkClient=new ZkClient(CONNECTSTRING,4000); System.out.println(zkClient+" - > s
2020-11-08 12:29:55 197
原创 zookeeper之javaapi操作
创建sessionpublic class CreateSessionDemo { private final static String CONNECTSTRING="192.168.30.10:2181"; private static CountDownLatch countDownLatch=new CountDownLatch(1); public static void main(String[] args) throws IOException, Interrupt
2020-11-08 12:27:39 90
转载 消息队列面试连环问:如何保证消息不丢失?处理重复消息?消息有序性?消息堆积处理?
核心点有很多,为了更贴合实际场景,我从常见的面试问题入手: 如何保证消息不丢失? 如何处理重复消息? 如何保证消息的有序性? 如何处理消息堆积? 当然在剖析这几个问题之前需要简单的介绍下什么是消息队列,消息队列常见的一些基本术语和概念。接下来进入正文。什么是消息队列来看看维基百科怎么说的,顺带学学英语这波不亏:In computer science, message queues and mailboxes are software-engineer
2020-10-26 15:32:17 290 1
原创 netty实现websocket例子
实现功能:基于Netty的NIO通信框架,提供高性能的异步通信能力;提供消息的编解码框架,可以实现POJO的序列化和反序列化;提供基于IP地址的白名单接入认证机制;链路的有效性校验机制;链路的断连重连机制。代码实现相关vo:消息的类型定义/** * @author yun * 类说明:消息的类型定义 */public enum MessageType { SERVICE_REQ((byte) 0),/*业务请求消息*/ SERVICE_RESP((byte) 1)
2020-10-18 17:50:35 300 1
原创 使用netty实现websocket通信demo
客户端启动类:/** 这是WebSocket客户端的示例。 要运行此示例,需要兼容的WebSocket服务器。 因此,可以通过运行WebSocketServer来启动WebSocket服务器, */public final class WebSocketClient { static final String URL = System.getProperty("url", "ws://127.0.0.1:8080/websocket")
2020-10-18 17:02:50 473
原创 短轮询、comet、websocket与spring整合代码例子
短轮询 function showTime(){ $.get("showTime",function (data) { console.log(data); $("#serverTime").html(data); }) } setInterval(showTime, 1000);
2020-10-17 16:00:55 318
原创 netty之udp单播demo
提问端/** * @author yun * 类说明:发送端 */public class UdpQuestionSide { public final static String QUESTION = "告诉我一句古诗"; public void run(int port) throws Exception{ EventLoopGroup group = new NioEventLoopGroup(); try {
2020-10-11 16:31:44 216
原创 netty之使用MessagePack序列化及使用LengthFieldPrepender处理粘包和半包
客户端/** * 作者:yun * 创建日期:2018/08/26 * 类说明: */public class ClientMsgPackEcho { private final String host; public ClientMsgPackEcho(String host) { this.host = host; } public void start() throws InterruptedException { Ev
2020-10-11 13:51:11 233
原创 netty之使用protobuf序列化例子
protobuf文件生成从https://github.com/protocolbuffers/protobuf/releases下载protoc-3.13.0-win64.zip解压得到protoc.exe在同一目录下创建test.proto,内容如下:syntax = "proto2";option java_package = "com.netty.protobuf";option java_outer_classname = "PersonProto"; message Person
2020-10-11 13:29:00 246
原创 netty写一个http服务器
一、客户端客户端启动类/** * @author yun * 类说明: */public class HttpClient { public void connect(String host, int port) throws Exception { EventLoopGroup workerGroup = new NioEventLoopGroup(); try { Bootstrap b = new Bootstrap();
2020-10-08 18:21:53 155
原创 netty解决粘包和半包
一、使用系统分隔符客户端/** * 作者:yun * 创建日期:2018/08/26 * 类说明: */public class LineBaseEchoClient { private final String host; public LineBaseEchoClient(String host) { this.host = host; } public void start() throws InterruptedException
2020-10-08 17:42:54 93
原创 netty简单例子
EchoClient客户端/** * 作者:yun * 创建日期:2018/08/26 * 类说明:netty的客户端 */public class EchoClient { private final int port; private final String host; public EchoClient(int port, String host) { this.port = port; this.host = host;
2020-10-06 22:51:13 131
原创 nio原生例子
常量类//服务器端口号 public static int DEFAULT_PORT = 12345; public static String DEFAULT_SERVER_IP = "127.0.0.1"; //返回给客户端的应答 public static String response(String msg){ return "Hello,"+msg+",Now is "+new java.util.Date( Sy
2020-10-06 16:29:10 106
原创 aio编程例子
AioClient 客户端主程序import static cn.enjoyedu.ch01.Ch01Const.DEFAULT_PORT;import static cn.enjoyedu.ch01.Ch01Const.DEFAULT_SERVER_IP;/** * @author yun * 类说明:aio的客户端主程序 */public class AioClient { //IO通信处理器 private static AioClientHandler clien
2020-10-04 18:54:57 252
原创 bio编程
BioServerpublic class BioServer { //服务器端必须 private static ServerSocket server; //线程池,处理每个客户端的请求 private static ExecutorService executorService = Executors.newFixedThreadPool(5); private static void start() throws IOExcepti
2020-10-04 17:59:11 88
原创 MySQL5.6空间gis扩展
MySQL空间扩展支持几何数据的存储,生成,分析,优化。1、空间数据类型(存储)MySQL支持以下数据类型:Geometry:可以存储所有的几何类型Point:简单点LINESTRING:简单线POLYGON:简单面MULITIPOINT:多点MULITILINESTRING:多线MUILITIPOLYGON:多面GEOMETRYCOLLECTION:任何几何集合在创建表的时候可以根据需求选择合适的几何类型存储你的空间数据。2、空间数据类型的生成MySQ L支持WKB,WKT数据生
2020-08-05 21:53:02 1335
原创 设计模式之建造者模式
/** *@author hyun * *类说明:产品类,抽象的 */public abstract class Person { protected String head; protected String body; protected String foot; public String getHead() { return head; } public void setHead(String head) {
2020-07-23 21:57:16 99
原创 mybatis代码自动生成工具mybatis-generator
添加maven依赖 <dependencies> <!-- mybatis相关依赖 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.1</version> </dependency> <!-- 自动生成代码相关
2020-06-25 18:47:07 428
原创 mybatis动态sql语句-汇总
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.yun.mybatis.mapper.AccountMapper"> <sql id="BaseColumnName"&g
2020-06-25 13:17:09 135
原创 java多线程生产多线程消费模式模式
应用场景比如我们需要上传一个excel 需要多线程校验,校验通过后直接插入数据库,这个时候我们就可以使用多线程校验 校验通过后多线程插入数据库场景,类似场景有非常多 不一一举例,废话不多说 直接上代码代码模拟多线程生产任务 多线程同时消费的场景运行结果示例代码package com.hyun.test.my;import java.util.Random;import java.util.concurrent.ArrayBlockingQueue;import java.util.con
2020-05-25 22:35:06 243
转载 阿里面试,问了我乐观锁、悲观锁、AQS、sync和Lock,这个回答让我拿了offer
前言关于线程安全一提到可能就是加锁,在面试中也是面试官百问不厌的考察点,往往能看出面试者的基本功和是否对线程安全有自己的思考。那锁本身是怎么去实现的呢?又有哪...
2020-05-25 20:58:28 250
原创 java 多线程处理任务,返回带进度条结果 封装为工具类
应用场景在我们写业务代码中,经常会想到多线程处理复杂耗时任务,但又想返回处理进度,下面代码就是实现这个业务。以下代码是执行两个任务,分别输出两个任务的实时进度和最后结果,包括定时从缓存移除运行效果图:类说明需自定义类:MyRun---------------程序测试入口MyTask--------------具体需执行业务类RequestData-------请求参数实体ResponseRet------返回结果实体框架类(无需修改,直接用):CheckJobProcesser---
2020-05-24 15:42:55 2422 3
原创 java泛型的全面使用
概念泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。使用1、泛型类:public class TaskResult<R> { private R data; private String reason; private ResultEnum res
2020-05-24 10:28:30 131
原创 java守护线程和非守护线程
守护进程:在Java中有两类线程:User Thread(用户线程):不随主线程的结束而结束,直到自己运行完Daemon Thread(守护线程) :当前JVM存在任何非守护线程时,守护线程就还可以工作(除非自己结束)举例理解:public class TestDaemon { public static void main(String[] args) { //守护线程 睡眠5s Thread daemonThread = new Thread(()->{ try .
2020-05-23 20:51:35 535
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人