最近在公司遇到一个问题,挂号系统是做的集群,比如启动了两个相同的服务,病人挂号的时候可能会出现同号的情况,比如两个病人挂出来的号都是上午2号.这就出现了问题,由于是集群部署的,所以单纯在代码中的方法中加锁是不能解决这种情况的.下面我将模拟这种情况,用redis做分布式锁来解决这个问题.
下图是创建好的项目结构,上面那个parent项目是其他项目不用管它,和新建的没有关系
3.开始创建controller,service,dao(mapper),写好后整体结构如下
package com.zk.service.impl;
import com.zk.mapper.MzMapper;
import com.zk.service.MzService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
/**
* 门诊操作service实现类
*
* @author zk
* @date 2020-9-9
*/
@Service
public class MzServiceImpl implements MzService {
@Autowired
private MzMapper mzMapper;
@Override
public Map<String, Object> gh(String ksdm, String ysdm,String brid) {
Map<String,Object> resultMap = new HashMap<>();
int ghxh = 0;
//获取当前的挂号序号
Map<String, Object> ghxhMap =