前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MarketGo Java版企业微信SCRM系统

MarketGo Java版企业微信SCRM系统

作者头像
CiiLii西里网
发布2023-11-07 12:15:51
4061
发布2023-11-07 12:15:51
举报
文章被收录于专栏:ECS服务器ECS服务器

一、概述

1.1、行业背景

国外的营销触达通道比较单一,主要以EDM为主。国内因为渠道的变化营销场景就复杂很多,当前国内做用户的营销触达主要的场景通道都有哪些。

  • 企业微信(私聊、社群、朋友圈)
  • 微信运营(公众号、小程序、视频号)
  • 电商运营(抖音、快手、淘宝、京东、拼多多)
  • 公域运营(短信、邮件、APP弹窗、PUSH推送、banner位)
  • 其他

虽然国内已经有非常多的 MarTech 公司做出了非常优秀的 SaaS 产品服务,但是国内的市场需求依然没有得到充分满足。主要体现在以下几点:

  • 痛---企业更注重客户的数据安全,私有化部署意愿强烈。
  • 痛---经营场景复杂,需要同全域经营场景打通做一体化营销,而不是单纯的买一套系统工具。
  • 痛---需要源代码,越来越多的企业开始选择自建,以打造出更适合自己业务的营销系统。其背后的主要原因就是市场上直接采购的 SaaS 标准工具“不业务”。

基于以上的痛点若稍具规模的企业想要解决以上问题,只有自建一条路,但是选择自建碰到最大的问题就是:

0-1 自建周期成本高

一个复杂的营销自动化系统从 0-1 开发出来并没有想象的那么简单,都需要浪费大量的人力和物力,甚至短期内是看不见什么成果的,很容易导致不了了之。那么有什么好的办法能解决呢?

1.2、MarketGo简介

基于以上背景,国内开源的营销自动化项目寥寥无几,MarketGo 在此背景下特意开源出来,以为国内数字化营销贡献绵薄之力

MarketGo 是一个营销引擎,通过提供的标准化功能和基础能力,让开发者能快速搭建适合自己企业的营销系统,快速完成从 0-1 的过程,并且能基于开放的能力和源码,开发深度融合自身业务的营销系统。

MarketGo 作为领域的产品新秀,也需要一步一个脚印逐步向前迈进。对未来的发展主要分以下几个阶段:

  • 构建私域SCRM营销平台

此阶段我们结合了当下私域营销的趋势,选择了优先从企业微信SCRM场景切入。 在这个阶段我们会提供个比较基础的企业微信SCRM功能,保留了其灵活的扩展性,便于开发者能够快速基于 MarketGo 开发自己想要的 SCRM 功能。

  • 全域营销基础能力搭建

此阶段我们会重点完善平台的全域营销能力,我们会接入更多的营销场景通道、人群圈选能力、任务下发能力、内容导入能力、自动化能力等。

  • 自动化场景快速迭代

此阶段我们会快速基于场景构建全域营销自动化方案。

二、产品功能

MarketGo的优势:

  1. 以私域SCRM为切入点,但不是终于私域SCRM,我们要提供全域的营销解决方案;
  2. 开发融合能力,基于营销场景,可以整合内容、商城、CDP等上下游系统;
  3. 微服务架构,基于JAVA的前后端分离,微服务架构,可以便于企业快速敏捷的进行二次开发;
  4. 专业的技术服务,在toB的企业,产品和售后服务是同等重要的事情,我们有专业的售后团队,可以快速响应客户的技术、产品等问题。

三、项目介绍

3.1、项目结构

前端项目结构如下:

代码语言:javascript
复制
├── babel.config.js       --按需引入配置
├── package-lock.json     --结合了逻辑树和物理树的一个快照
├── package.json          --安装树
├── public                --公共文件
│   ├── favicon.ico       --网页标题的左侧小图标
│   └── index.html        --入口页面
├── src                   --源码文件
│   ├── App.vue           --根组件
│   ├── api               --api配置
│   ├── assets            --资源文件
│   ├── components        --公共组件
│   ├── main.js           --入口文件
│   ├── mixins            --js配置+公共变量
│   ├── router            --路由
│   ├── store             --状态库
│   ├── utils             --公共方法
│   └── views             --视图界面
└── vue.config.js         --配置文件

后端项目结构如下:

代码语言:javascript
复制
├── marketgo.sql           --系统的sql脚本
├── mktgo-api              --dubbo的接口定义
├── mktgo-biz              --业务module
├── mktgo-common           --公共依赖
├── mktgo-core             --业务核心公共模块,
├── mktgo-gateway          --网关服务,请求企微的接口
├── mktgo-react            --接收外部请求的modul,可以根据自己的客户量级,做成服务
├── mktgo-test             --测试项目
├── mktgo-web              --web服务
└── pom.xml                --公共依赖

客户端项目结构如下:

代码语言:javascript
复制
├── LICENSE
├── index.html              --入口页面
├── package-lock.json       --结合了逻辑树和物理树的一个快照
├── package.json            --安装树
├── public
│   └── env.js
├── src                     --源码文件
│   ├── App.vue             --根组件
│   ├── api                 --api配置
│   ├── imgs                --图片资源
│   ├── main.js             --入口文件
│   ├── pinia
│   ├── router.js
│   ├── utils               --公共方法
│   └── view                --视图界面
└── vite.config.js          --配置文件

3.2、技术框架

  • 核心框架:SpringBoot 2.7.0
  • 日志管理:SLF4J 1.7
  • 持久层框架:spring-data-jpa 2.7.0
  • RPC框架:dubbo 2.7.13
  • 项目管理框架: Maven 3.6.0
  • 前端框架:Vue 2.6.11
  • UI框架: element-ui 2.15.9

3.3、开发环境

  • IDE: IntelliJ IDEA 2019.2+
  • DB: Mysql 5.7.37
  • JDK: JDK 1.8
  • Maven: Maven 3.6.1
  • Redis:7.0.2
  • Nginx: 1.12.2

3.4、部署流程

服务器配置

服务器的最低配置如下:

类型

配置

操作系统

CentOS 7.6

CPU

4核

内存

8G

硬盘

80G

带宽

3M

端口设置

服务

端口

zookeeper

2181

mktgo-gateway

8521

mktgo-web

8520

dubbo

28090

Xxl-job

8580

redis

6379

mysql

3306

环境准备

1、环境配置

组件名称

版本号

JDK

1.8

mysql

5.7.0

redis

7.0.2

rabbitmq

3.10.0

nginx

1.20.1

zookeeper

3.4.6

2、JDK

yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel

#设置环境变量

vi /etc/profile

#添加一下信息

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdkexport CLASSPATH=.:JAVA_HOME/jre/lib/rt.jar:JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jarexport PATH=PATH:

#保存加载

source /etc/profile

3、mysql

#创建项目目录

mkdir -p /opt/soft/marketgo/mysqlcd /opt/soft/marketgo/mysql

#安装wget下载器

yum install -y wget 

#下载mysql

wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar

#解压

tar xf mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar

#安装rpm

rpm -ivh mysql-community-common-5.7.37-1.el7.x86_64.rpm --nodeps --forcerpm -ivh mysql-community-libs-5.7.37-1.el7.x86_64.rpm --nodeps --forcerpm -ivh mysql-community-client-5.7.37-1.el7.x86_64.rpm --nodeps --forcerpm -ivh mysql-community-server-5.7.37-1.el7.x86_64.rpm --nodeps --force

#启动服务

systemctl start mysqldsystemctl enable mysqldsystemctl status mysql

#查询密码

grep 'temporary password' /var/log/mysqld.log

#登录并修改密码

mysql -u root -p'password'ALTER USER 'root'@'localhost' IDENTIFIED BY 'MarketGo@mysql2022';

4、redis

#创建项目目录

mkdir -p /opt/soft/marketgo/redis

cd /opt/soft/marketgo/redis

wget https://github.com/redis/redis/archive/7.0.2.tar.gz

tar -zxvf 7.0.2.tar.gz

mv redis-7.0.2 /usr/local/redis

cd /usr/local/redis/

make install PREFIX=/usr/local/redis

# 配置redis 密码及参数

vim /usr/local/redis/redis.conf

#修改如下配置

daemonize yesprotected-mode no./bin/redis-server redis.conf

5、rabbitmq

#创建项目目录mkdir -p /opt/soft/marketgo/rabbitmqcd /opt/soft/marketgo/rabbitmqcurl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bashyum install erlang -yerl -versioncurl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bashyum install rabbitmq-server -ysystemctl enable rabbitmq-server.servicesystemctl start rabbitmq-server.servicerabbitmq-plugins enable rabbitmq_managementrabbitmqctl add_user admin 'admin'rabbitmqctl set_user_tags admin administratorps -ef | grep rabbitmq

6、nginx

yum info nginxyum install nginxservice nginx startnginx -v

7、zookeeper

mkdir -p /opt/soft/marketgo/zookeepercd  /opt/soft/marketgo/zookeeperwget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gztar -zxvf zookeeper-3.4.6.tar.gzcd zookeeper-3.4.6/conf/mv zoo_sample.cfg zoo.cfg./bin/zkServer.sh startps -ef | grep zookeeper

前端部署

1、部署安装包

#下载代码,进入根目录下的version目录,上传dist.zipscp dist.zip root@${IP}:/opt/soft/marketgo/

#登录服务器,进入/opt/soft/marketgo/

unzip dist.zip

mv dist html

#修改服务器地址cd /opt/soft/marketgo/html

#修改服务器的地址vim env.js 

后端部署

1、环境设置

1.1、设置nginx

修改nginx.conf

vim /etc/nginx/nginx.conf

nginx.conf

代码语言:javascript
复制
http{

gzip on; gzip_static on; gzip_disable "msie6"; gzip_min_length 100k; gzip_buffers 4 16k; gzip_comp_level 5; log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                       '$status $body_bytes_sent "$http_referer" '                       '"$http_user_agent" "$http_x_forwarded_for"'; access_log  /var/log/nginx/access.log  main; sendfile            on; tcp_nopush          on; tcp_nodelay         on; keepalive_timeout   65; types_hash_max_size 4096; client_max_body_size  100m; client_body_buffer_size 100m; client_body_temp_path   temp/; include             /etc/nginx/mime.types; default_type        application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; server{ listen       80; listen       [::]:80; server_name  localhost; #root         /usr/share/nginx/html; #root         /opt/soft/html; #   指定允许跨域的方法,*代表所有 location /{ proxy_set_header Host $host; proxy_set_header   X-Real-IP        $remote_addr; proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for; proxy_buffer_size  128k; proxy_buffers   32 32k; proxy_busy_buffers_size 128k; client_max_body_size  100m; client_body_buffer_size 100m; client_body_temp_path   temp/; proxy_connect_timeout       60; proxy_send_timeout          60; proxy_read_timeout          60; send_timeout                60; proxy_http_version 1.1;#开启后端,长连接 proxy_set_header Connection ""; root   /opt/soft/marketgo/html; index  index.html index.htm; } location /marketgo{ root /opt/soft/marketgo/client; try_files $uri $uri/ /marketgo/index.html; } location /web{ client_max_body_size  100m; client_body_buffer_size 100m; client_body_temp_path   temp/; if ($request_method = 'OPTIONS'){ add_header Access-Control-Allow-Origin '$http_origin'; add_header Access-Control-Allow-Headers 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,api-token,header-api-token,language,Api-Token,isPlatform'; add_header 'Access-Control-Allow-Methods' 'GET, POST, DELETE, OPTIONS, PUT'; add_header Access-Control-Allow-Credentials 'true'; return 204; } proxy_pass http://127.0.0.1:8520/; } location /mktgo/api{ proxy_pass http://127.0.0.1:8521; } location /mktgo/client{ proxy_pass http://127.0.0.1:8521; } location ~  .*\.(txt)${ proxy_pass http://127.0.0.1:8521; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; add_header Access-Control-Allow-Origin $http_origin; add_header Access-Control-Allow-Credentials true; } # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; }

重新加载nginx

#重新加载conf/usr/sbin/nginx -s reload#重启systemctl restart nginx

1.2、设置hosts

#配置hostsvim /etc/hosts#添加以下配置127.0.0.1  dev-marketgo.com zk.dev-marketgo.com redis.dev-marketgo.com rabbitmq.dev-marketgo.com  mysql.dev-marketgo.com127.0.0.1  xxl-job.dev-marketgo.com#加载source /etc/hosts

1.3、设置数据库

#下载代码,进入根目录下的version目录,上传xxl-job的数据库scp xxl-job.zip root@{IP}:/opt/soft/marketgo#解压unzip xxl-job.zip#导入定时任务的信息 xxl-job 在项目的根目录下source /opt/soft/marketgo/xxl-job/xxl_job.sql#下载代码,进入根目录下的version目录,上传marketgo的数据库scp web.zip root@{IP}:/opt/soft/marketgo#解压unzip web.zip#登录mysql,加载marketgo数据库source /opt/soft/marketgo/web/marketgo.sql

1.4、添加rabbitmq虚拟机

rabbitmqctl add_vhost /wecomrabbitmqctl set_permissions -p /wecom admin '.*' '.*' '.*'systemctl restart rabbitmq-server.service

2、部署安装包

2.1、部署xxl-job

#登录服务器, 创建日志文件mkdir -p /opt/soft/marketgo/logs/xxl-job#进入/opt/soft/marketgo/xxl-jobchmod +777 xxl-job-admin-2.3.1.jar#启动服务java -jar xxl-job-admin-2.3.1.jar  & >> /opt/soft/marketgo/logs/xxl-job/xxl-job.log

2.2、部署gateway服务

#下载代码,进入根目录下的version目录,上传gateway.zipscp gateway.zip root@${IP}:/opt/soft/marketgo/#登录服务器,进入/opt/soft/marketgo/unzip gateway.zipcd gatewaychmod +777 *./start_service.sh start

2.3、部署web服务

#下载代码,进入根目录下的version目录,上传web.zipscp web.zip root@${IP}:/opt/soft/marketgo/#登录服务器,进入/opt/soft/marketgo/unzip web.zipcd webchmod +777 *./start_service.sh start

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、概述
    • 1.1、行业背景
      • 1.2、MarketGo简介
        • 3.1、项目结构
        • 3.2、技术框架
        • 3.3、开发环境
    • 二、产品功能
    • 三、项目介绍
      • 3.4、部署流程
        • 1、环境配置
        • 2、JDK
        • 3、mysql
        • 4、redis
        • 5、rabbitmq
        • 6、nginx
        • 7、zookeeper
        • 1、部署安装包
        • 1、环境设置
        • 2、部署安装包
    • 服务器配置
    • 环境准备
    • 前端部署
    • 后端部署
    相关产品与服务
    腾讯企点营销
    腾讯企点原厂自研重磅级SaaS营销产品,是数字营销领域的行业领军品牌。全渠道数字化平台,提供给市场营销人员更高效企业市场部的营销管理工作台,实现全场景获客,全周期线索管理,全旅程自动化营销,全链路数据洞察。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档