用java实施的电子商务平台太少了,使用spring cloud技术构建的b2b2c电子商务平台更少,大型企业分布式互联网电子商务平台,推出PC+微信+APP+云服务的云商平台系统,其中包括B2B、B2C、C2C、O2O、新零售、直播电商等子平台。需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码 一零三八七七四六二六。
  
  技术解决方案
  
  开发语言: java、j2ee
  
  数据库:mysql
  
  JDK支持版本: JDK1.6、JDK1.7、JDK1.8版本
  
  核心技术:分布式、云服务、微服务、服务编排等。
  
  核心架构: 使用Spring Cloud分布式微服务云架构进行服务化开发,所有模块功能完全解耦,提供服务发现、注册、配置中心、消息总线、负载均衡、断路器、数据监控等。
  
  技术列表:
  
  Spring Cloud Config
  
  配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion
  
  Spring Cloud Bus
  
  事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署
  
  Eureka
  
  云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。
  
  Hystrix
  
  熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。
  
  Zuul
  
  Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。
  
  Spring Cloud Security
  
  基于spring security的安全工具包,为你的应用程序添加安全控制。
  
  Feign
  
  Feign是一种声明式、模板化的HTTP客户端。
  
  Four Steps to Deep Learning
  
  System Setup
  
  Image Recognition
  
  Object Detection
  
  Segmentation
  
  CUDA
  
  一种并行计算技术
  
  编写自己的图像识别程序.
  
  https://github.com/dusty-nv/jetson-inference/tree/master/examples/my-recognition
  
  /*
  
  * Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.
  
  *
  
  * Permission is hereby granted, free of charge, to any person obtaining a
  
  * copy of this software and associated documentation files (the "Software"),
  
  * to deal in the Software without restriction, including without limitation
  
  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  
  * and/or sell copies of the Software, and to permit persons to whom the
  
  * Software is furnished to do so, subject to the following conditions:
  
  *
  
  * The above copyright notice and this permission notice shall be included in
  
  * all copies or substantial portions of the Software.
  
  *
  
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  
  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  
  * DEALINGS IN THE SOFTWARE.
  
  */
  
  // include imageNet header for image recognition
  
  #include <jetson-inference/imageNet.h>
  
  // include loadImage header for loading images
  
  #include <jetson-utils/loadImage.h>
  
  // main entry point
  
  int main( int argc, char** argv )
  
  {
  
  // a command line argument containing the image filename is expected,
  
  // so make sure we have at least 2 args (the first arg is the program)
  
  if( argc < 2 )
  
  {
  
  printf("my-recognition: expected image filename as argument\n");
  
  printf("example usage: ./my-recognition my_image.jpg\n");
  
  return 0;
  
  }
  
  // retrieve the image filename from the array of command line args
  
  const char* imgFilename = argv[1];
  
  // these variables will be used to store the image data and dimensions
  
  // the image data will be stored in shared CPU/GPU memory, so there are
  
  // pointers for the CPU and GPU (both reference the same physical memory)
  
  float* imgCPU = NULL; // CPU pointer to floating-point RGBA image data
  
  float* imgCUDA = NULL; // GPU pointer to floating-point RGBA image data
  
  int imgWidth = 0; // width of the image (in pixels)
  
  int imgHeight = 0; // height of the image (in pixels)
  
  // load the image from disk as float4 RGBA (32 bits per channel, 128 bits per pixel)
  
  if( !loadImageRGBA(imgFilename, (float4**)&imgCPU, (float4**)&imgCUDA, &imgWidth, &imgHeight) )
  
  {
  
  printf("failed to load image '%s'\n", imgFilename);
  
  return 0;
  
  }
  
  // load the GoogleNet image recognition network with TensorRT
  
  // you can use imageNet::ALEXNET to load AlexNet model instead
  
  imageNet* net = imageNet::Create(imageNet::GOOGLENET);
  
  // check to make sure that the network model loaded properly
  
  if( !net )
  
  {
  
  printf("failed to load image recognition network\n");
  
  return 0;
  
  }
  
  // this variable will store the confidence of the classification (between 0 and 1)
  
  float confidence = 0.0;
  
  // classify the image with TensorRT on the GPU (hence we use the CUDA pointer)
  
  // this will return the index of the object class that the image was recognized as (or -1 on error)
  
  const int classIndex = net->Classify(imgCUDA, imgWidth, imgHeight, &confidence);
  
  // make sure a valid classification result was returned
  
  if( classIndex >= 0 )
  
  {
  
  // retrieve the name/description of the object class index
  
  const char* classDescription = net->GetClassDesc(classIndex);
  
  // print out the classification results
  
  printf("image is recognized as '%s' (class #%i) with %f%% confidence\n",
  
  classDescription, classIndex, confidence * 100.0f);
  
  }
  
  else
  
  {
  
  // if Classify() returned < 0, an error occurred
  
  printf("failed to classify image\n");
  
  }
  
  // free the network's resources before shutting down
  
  delete net;
  
  // this is the end of the example!
  
  return 0;
  
  }
  
  载入图像 loadImageRGBA
  
  加载的图像存储于共享内存,映射到cpu和gpu.实际的内存里的image只有1份,cpu/gpu pointer指向的都是同一份物理内存。
  
  The loaded image will be stored in shared memory that's mapped to both the CPU and GPU. There are two pointers available for access in the CPU and GPU address spaces, but there is really only one copy of the image in memory. Both the CPU and GPU pointers resolve to the same physical memory, without needing to perform memory copies (i.e. cudaMemcpy()).
  
  载入神经网络模型
  
  imageNet::Create()
  
  GOOGLENET是一个预先训练好的模型,使用的数据集是ImageNet(注意不是imageNet对象).类别有1000个,包括了动植物,常见生活用品等.
  
  // load the GoogleNet image recognition network with TensorRT
  
  // you can use imageNet::ALEXNET to load AlexNet model instead
  
  imageNet* net = imageNet::Create(imageNet::GOOGLENET);
  
  // check to make sure that the network model loaded properly
  
  if( !net )
  
  {
  
  printf("failed to load image recognition network\n");
  
  return 0;
  
  }
  
  对图片进行分类
  
  Classify返回的是类别对应的index
  
  //this variable will store the confidence of the classification (www.hengtongyoule.com/ between 0 and 1)
  
  float confidence = 0.0;
  
  // classify the image with TensorRT on the GPU (hence we use the CUDA pointer)
  
  // this will return the index of the object class that the image was recognized as (www.tianjiuyule178.com or -1 on error)
  
  const int classIndex = net->Classify(imgCUDA,www.gaozhuoyiqi.com imgWidth, imgHeight, &confidence);
  
  解释结果
  
  // make sure a valid classification result was returned
  
  if( classIndex >= 0 )
  
  {
  
  // retrieve the name/description of the object class index
  
  const char* classDescription = net->GetClassDesc(classIndex);
  
  // print out the classification results
  
  printf("image is recognized as '%s'www.qwert888.com/ (class #%i) with %f%% confidence\n",
  
  classDescription, classIndex, confidence * 100.0f);
  
  }
  
  else
  
  {
  
  // if Classify() returned <www.zhongyiyul.cn 0, an error occurred
  
  printf("failed to classify image\n");
  
  }
  
  These descriptions of the 1000 classes are parsed from ilsvrc12_synset_words.txt when the network gets loaded (this file was previously downloaded when the jetson-inference repo was built).
  
  退出
  
  程序退出前要释放掉资源
  
  // free the network's resources before shutting down
  
  delete net;
  
  // this is the end of the example!
  
  return 0;
  
  }
  
  cmake文件
  
  # require CMake 2.8 or greater
  
  cmake_minimum_required(VERSION 2.8)
  
  # declare my-recognition project
  
  project(my-recognition)
  
  # import jetson-inference and jetson-utils packages.
  
  # note that if you didn't do "sudo make install"
  
  # while building jetson-inference, this will error.
  
  find_package(jetson-utils)
  
  find_package(jetson-inference)
  
  # CUDA and Qt4 are required
  
  find_package(CUDA)
  
  find_package(Qt4)
  
  # setup Qt4 for build
  
  include(${QT_USE_FILE})
  
  add_definitions(${QT_DEFINITIONS})
  
  # compile the my-recognition program
  
  cuda_add_executable(my-www.yunshengyule178.com recognition my-recognition.cpp)
  
  # link my-recognition to jetson-inference library
  
  target_link_libraries(my-recognition jetson-inference)
  
  没什么要特别说的,主要的依赖如下:
  
  find_package(jetson-utils)
  
  find_package(jetson-inference)
  
  target_link_libraries(my-recognition jetson-inference)
  
  实时图片识别
  
  上面的代码展示的是本地图片的识别,这一节给出实时的摄像头拍摄图片识别的demo.
  
  iamgenet-camera

spring cloud + mybatis 分布式 微服务 b2b2c 多商户商城 全球部署方案的更多相关文章

  1. 《Spring Cloud与Docker微服务架构实战》配套代码

    不才写了本使用Spring Cloud玩转微服务架构的书,书名是<Spring Cloud与Docker微服务架构实战> - 周立,已于2017-01-12交稿.不少朋友想先看看源码,现将 ...

  2. Spring Cloud与Docker——微服务架构概述

    Spring Cloud与Docker--微服务架构概述 单体应用架构概述 微服务概述 微服务的特性 微服务架构的优点 微服务面临的挑战 微服务的设计原则 单体应用架构概述 传统的服务发布都是采用单体 ...

  3. SpringCloud(9)使用Spring Cloud OAuth2保护微服务系统

    一.简介 OAth2是一个标准的授权协议. 在认证与授权的过程中,主要包含以下3种角色. 服务提供方 Authorization Server. 资源持有者 Resource Server. 客户端 ...

  4. Spring Cloud与Docker微服务架构实战 PDF

    电子版百度云下载 链接: https://pan.baidu.com/s/115u011CJ8MZzJx_NqutyTQ 提取码: 关注公众号[GitHubCN]回复2019获取 本书的代码 共计70 ...

  5. Spring Cloud与Docker微服务架构实战 PDF版 内含目录

    Spring Cloud与Docker微服务架构实战  目录 1 微服务架构概述 1 1.1 单体应用架构存在的问题1 1.2 如何解决单体应用架构存在的问题3 1.3 什么是微服务3 1.4 微服务 ...

  6. 从 Spring Cloud 看一个微服务框架的「五脏六腑」

    原文:https://webfe.kujiale.com/spring-could-heart/ Spring Cloud 是一个基于 Spring Boot 实现的微服务框架,它包含了实现微服务架构 ...

  7. 从 Spring Cloud 看一个微服务框架的「五脏六腑」(转)

    Spring Cloud 是一个基于 Spring Boot 实现的微服务框架,它包含了实现微服务架构所需的各种组件. 本文将从 Spring Cloud 出发,分两小节讲述微服务框架的「五脏六腑」: ...

  8. 【分布式架构】“spring cloud”与“dubbo”微服务的对比

      秉承站在巨人的肩膀上,同时我也不想重复制造轮子,我发现了一系列关于“分布式架构”方面,我需要,同时能够解决我的一些疑惑.问题的博客,转载过来,原文链接: http://blog.csdn.net/ ...

  9. 综合使用spring cloud技术实现微服务应用

    在之前的章节,我们已经实现了配置服务器.注册服务器.微服务服务端,实现了服务注册与发现.这一章将实现微服务的客户端,以及联调.实现整个spring cloud框架核心应用. 本文属于<7天学会s ...

随机推荐

  1. JQuery 的Ajax的使用

    JSON:一种轻量级的数据表示方法,优点:传输方便,占用字节少 XML:一种偏重量级的数据表示方法,优点:格式清晰,占用字节多,大量的字节都浪费在了标签上: 网络传输我们常使用json,因为浏览器解析 ...

  2. SOAP UI-----测webservice接口

    webservice的请求报文和返回报文都是xml格式的. 使用soapui.storm对webservice接口进行测试,postman无法测. http://www.webxml.com.cn/W ...

  3. shell脚本使用记录一:操作文件

    一,连接远程数据库(保证在服务器上能使用mysql命令行,至少要安装mysql客户端) #!/bin/bash HOSTNAME="ip" PORT=" USERNAME ...

  4. Migrate MySQL database using dump and restore

    kaorimatz/mysqldump-loader: Load a MySQL dump file using LOAD DATA INFILEhttps://github.com/kaorimat ...

  5. MySQL数据库性能优化思路与解决方法(一转)

     1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越 小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设 ...

  6. vue传参二

    <template> <ul> <li v-for="(value,key,index) in list" :key="index" ...

  7. laravel服务容器

    laravel框架底层解析 本文参考陈昊<Laravel框架关键技术解析>,搭建一个属于自己的简化版服务容器.其中涉及到反射.自动加载,还是需要去了解一下. laravel服务容器 建立项 ...

  8. 2 JAVA 项目名称前红色叹号如何解决

    1 Java 项目前出现红色叹号Eclipse找不到项目需要的JAR包,可以在这里面解决: ① 右键点击项目,选择[Build Path].[Configure Build Path...] ② 在这 ...

  9. Azure系列2.1.6 —— BlobProperties

    (小弟自学Azure,文中有不正确之处,请路过各位大神指正.) 网上azure的资料较少,尤其是API,全是英文的,中文资料更是少之又少.这次由于公司项目需要使用Azure,所以对Azure的一些学习 ...

  10. 基于vue-cli,sass,vant的移动端项目

    项目架构 开始 vue init webpack    项目名称         //新建项目,cd进入新项目 npm install axios                    //先安装! ...